当文件名以重音开头时,basename()失败

zes*_*ssx 5 php filenames

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

print basename('léquipe.jpg'); // léquipe.jpg
print basename('équipe.jpg');  // quipe.jpg
Run Code Online (Sandbox Code Playgroud)

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

谢谢

Riz*_*123 5

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

如果第一个字符是非 ASCII 字符,该字符就会消失。如果路径本身中有非 ASCII 字符,则它可以正常工作。

另外似乎很奇怪的是,这个问题只发生在 64 位 PHP 安装中:

要解决此问题,您可以使用PHP 手册注释中提供的自定义函数:

function mb_basename($file) 
{ 
    return end(explode('/',$file)); 
} 
Run Code Online (Sandbox Code Playgroud)

代码来自:“(删除)dot nasretdinov at(删除)dot gmail dot com”