file_exists(“file_å.txt”);在Linux机器上使用PHP file_exists和特殊字符(如ØØÆ)
返回false while file is there。有没有什么可以让* file_exists *看到这种名称的文件?
谢谢。
file_exists(“file_å.txt”);在Linux机器上使用PHP file_exists和特殊字符(如ØØÆ)
返回false while file is there。有没有什么可以让* file_exists *看到这种名称的文件?
谢谢。
检查您的PHP脚本所在的编码。可能与文件系统不同。 (如LATIN1与UTF-8)
是的,该文件是UTF-8。不知道如何检查我的提升机的文件系统是什么编码。会让你更新。并感谢提示。 –
你确定你的php文件是UTF8吗? (不是file_a.txt文件) – periklis
iconv('UTF-8','ISO-8859-1','file_å.txt')在浏览器中提供了正确的文件命名,但是* file_eixsts *不能检查它是否存在。 –
尝试
file_exists(mb_convert_encoding("file_å.txt", "UTF-8"));
假设文字是不是UTF-8
谢谢,这没有奏效。 –
工作对我来说:D – DaMouse404
检查这个答案: https://stackoverflow.com/a/2685818/190791
我的解决方案是转换为windows文件格式:
$winfilename= iconv('utf-8', 'cp1252', $utffilename);
这对我的文件名有 - 符号在其中工作。谢谢! –
例如,当我从Excel中读取文件名并在磁盘上查找给定的路径时,我已经运行了几次。问题可能是“ä”或者是特定的unicode字符(\ u00e4)或者它的“组合禁止”形式(a \ u0308),即带有两个点的“a”。
由于php 5.3的最佳解决方案是使用Normalizer库。 您可能需要sudo apt-get install php5-intl
才能将该类放入您的PHP中。之后,仅仅
$normalizer = new \Normalizer();
$normalizer->normalize($val, \Normalizer::FORM_D)
即使世界的第二个参数的几个不同的形式,所以你必须查找你需要其中之一
可能重复[特殊字符“file_exists”的问题(PHP)( http://stackoverflow.com/questions/2685718/special-characters-in-file-exists-problem-php) – Treffynnon
另请参阅https://bugs.php.net/bug.php?id=46990 – Treffynnon
不重复。该主题与基于Windows的框有关。但是,感谢您的链接! –