3

file_exists("file_å.txt");

ファイルが存在する間はfalseを返します。この種の名前のファイルを表示するために *file_exists* を作成するものはありますか?

ありがとう。

4

4 に答える 4

3

たとえば、Excel からファイル名を読み取ったり、ディスク上の特定のパスを検索したりするときに、これに数回遭遇しました。問題は、"ä" が特定の Unicode 文字 (\u00e4) であるか、その「組み合わせダイアレシス」形式 (a\u0308)、つまり 2 つのドットの "a" である可能性があります。

PHP 5.3 以降の最善の解決策は、Normalizer ライブラリを使用することです。sudo apt-get install php5-intlクラスを PHP に取り込む必要がある場合があります。その後ちょうど

$normalizer = new \Normalizer();
$normalizer->normalize($val, \Normalizer::FORM_D)

2 番目の引数にはいくつかの異なる形式があるため、必要な形式を調べる必要があります。

于 2016-06-01T10:25:44.180 に答える
2

この回答を確認してください: https://stackoverflow.com/a/2685818/190791

私にとっての解決策は、Windowsファイル形式に変換することでした:

$winfilename= iconv('utf-8', 'cp1252', $utffilename);
于 2012-12-16T13:35:58.517 に答える
2

試す

file_exists(mb_convert_encoding("file_å.txt", "UTF-8"));

テキストがutf-8ではないと仮定

于 2012-05-24T13:52:52.987 に答える
1

Check which encoding your php script is in. Probably it's different from the file systems. (E.g. latin1 vs. utf-8)

于 2012-05-24T13:52:41.483 に答える