Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何将文件名与路径分开?basename()与带数组的preg_split()的比较_Php_Regex_Filenames_Filepath - Fatal编程技术网

Php 如何将文件名与路径分开?basename()与带数组的preg_split()的比较

Php 如何将文件名与路径分开?basename()与带数组的preg_split()的比较,php,regex,filenames,filepath,Php,Regex,Filenames,Filepath,如果此函数的实际操作可以写成两行,那么为什么在PHP脚本中使用basename(): $subFolders = preg_split("!\\\|\\/!ui", $path); // explode on `\` or `/` $name = array_pop($subFolder); // extract last element's value (filename) 我错过什么了吗 但是,如果文件名中有一些\或/,我猜上面的代码可能无法正常工作。但这是不可能的,对吗?PHP可能运

如果此函数的实际操作可以写成两行,那么为什么在PHP脚本中使用
basename()

$subFolders = preg_split("!\\\|\\/!ui", $path);  // explode on `\` or `/`
$name = array_pop($subFolder);  // extract last element's value (filename)
我错过什么了吗


但是,如果文件名中有一些
\
/
,我猜上面的代码可能无法正常工作。但这是不可能的,对吗?

PHP可能运行在具有许多不同文件系统和命名约定的许多不同系统上。使用像
basename()
这样的函数可以保证(或至少应该保证)正确的结果,而与平台无关。这增加了代码的可移植性


另外,比较一下对代码的一个简单的
basename()
调用,它更具可读性,而且对于其他程序员来说,它应该做什么更为明显?

您是否缺少了一点,即不是每个人都像您一样熟悉regex?PS$subf来自哪里?