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的框有關。但是,感謝您的鏈接! –