basename() 在win环境与Linux 的返回值不一样

作者: JONE 分类: PHP/MySQL 发布时间: 2018-03-29 21:38
例如
basename('controller\index');
在win环境下返回值为 'index';
在Linux环境下返回值为 'controller\index';


在 PHP 中对URL的处理主要有下面三个函数

string basename ( string $path [, string $suffix ] )
//给出一个包含有指向一个文件的全路径的字符串,本函数返回去掉文件名后的目录名。

string dirname ( string $path )
//给出一个包含有指向一个文件的全路径的字符串,本函数返回基本的文件名。

mixed pathinfo ( string $path [, int $options ] )
// 返回一个关联数组包含有 path 的信息。返回关联数组还是字符串取决于 options。

这三个函数在windows下可以识别路径中的 \/ 但在Linux下只识别 / ,因此在Linux下需要先将 \ 替换为 /

$path = 'App\Http\Middleware\User\login';
$path = str_replace('\\','/',$path);
var_dump(basename($path));
var_dump(dirname($path));
var_dump(pathinfo($path));

原文链接:https://blog.csdn.net/soeben/article/details/78511046

发表评论

电子邮件地址不会被公开。 必填项已用*标注