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

dKa*_*Kab 2 php regex filenames filepath

为什么basename()在PHP脚本中使用此函数实际执行的操作可能分为两行:

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

我错过了什么吗?

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

Pek*_*ica 5

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

另外,将一个简单的basename()调用与代码进行比较- 这对于其他程序员来说更具可读性和更明显性?