这是显示问题的一个简单示例:

print basename('léquipe.jpg'); // léquipe.jpg
print basename('équipe.jpg');  // quipe.jpg

如何避免这种不一致,并确保basename()将返回整个文件名?

谢谢

最佳答案

因此,事实证明这似乎是一个错误:https://bugs.php.net/bug.php?id=62119

如果第一个字符是非ASCII字符,则该字符将消失。如果路径本身中包含非ASCII字符,则可以正常工作。

同样奇怪的是,此问题仅在64位PHP安装中发生:

  • 64bit version(无法正常工作)
  • 32bit version(按预期方式工作)

  • 为了解决这个问题,您可以使用PHP manual comment提供的自定义函数:
    function mb_basename($file)
    {
        return end(explode('/',$file));
    }
    

    来自以下代码:“(删除)点gmail点com上的(删除)点nasretdinov”

    关于php - 当文件名以重音符号开头时,basename()失败,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32115609/

    10-10 21:17