【问题标题】:How to separate filename from path? basename() versus preg_split() with array_pop()如何将文件名与路径分开? basename() 与 preg_split() 与 array_pop()
【发布时间】:2014-01-18 12:35:11
【问题描述】:

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

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

我错过了什么吗?

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

【问题讨论】:

  • 您是否错过了不是每个人都像您一样对正则表达式感到满意?
  • PS $subf 是从哪里来的?

标签: php regex filenames filepath


【解决方案1】:

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

另外,将一个简单的basename() 调用与您的代码进行比较 - 它的可读性更高,并且对于其他程序员来说它应该做什么更明显?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-08
    相关资源
    最近更新 更多