如何从路径中分离文件名? basename()与带有array_pop()的preg_split()

时间:2013-12-31 15:40:37

标签: php regex filenames filepath

为什么在PHP脚本中使用basename()如果这个函数实际上在做什么可能会写成两行:

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

我错过了什么吗?

但是我猜这上面的代码可能无法正常运行如果文件名中包含\/。但这不可能,对吗?

1 个答案:

答案 0 :(得分:5)

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

另外,将一个简单的basename()调用与你的代码进行比较 - 这对于其应该做的事情来说更易读,更明显?