在PHP中获取文件的基本名称(没有扩展名的文件名)的推荐方法是什么?
echo basename('foo.jpg', '.jpg');
// outputs "foo"
echo pathinfo('foo.jpg', PATHINFO_FILENAME);
// outputs "foo"
Run Code Online (Sandbox Code Playgroud)
显然两者都产生相同的输出.使用一个优于另一个有什么好处?
性能方面看起来basename()比1,000,000次迭代更快300毫秒:
<?php
$f = 'foo.jpg';
$n = 1000000;
$start = microtime(true);
for ($i = 0; $i < $n; $i++) {
basename($f);
}
$stop1 = microtime(true);
for ($i = 0; $i < $n; $i++) {
pathinfo($f, PATHINFO_FILENAME);
}
$stop2 = microtime(true);
echo "Basename result: " . ($stop1 - $start) . " seconds\n";
echo "Pathinfo result: " . ($stop2 - $stop1) . " seconds\n";
Run Code Online (Sandbox Code Playgroud)
这输出:
Basename result: 1.0358278751373 seconds
Pathinfo result: 1.3277871608734 seconds
Run Code Online (Sandbox Code Playgroud)
除了边际性能提升之外,我还对如何在幕后实现这些功能感兴趣?在这两种情况下,检索基本名称的基础算法是否相似?
如果您只需要基本名称,请使用基本名称函数。无论如何,尽量使用消耗较少的操作;当您可以直接在字符串中获取所需内容(使用 basename 函数)时,为什么要创建不需要的信息数组(使用 pathinfo)?
| 归档时间: |
|
| 查看次数: |
1588 次 |
| 最近记录: |