ホームページ  >  記事  >  バックエンド開発  >  PHP の file_exists 関数が中国語の名前をサポートしていない問題の解決策の詳細な例

PHP の file_exists 関数が中国語の名前をサポートしていない問題の解決策の詳細な例

怪我咯
怪我咯オリジナル
2017-07-11 10:37:191459ブラウズ

file_exists — ファイルまたはディレクトリが存在するかどうかを確認します。構文は次のとおりです

 file_exists ( $filename )

パラメータ filename はファイルまたはディレクトリへのパスです。 filename で指定されたファイルまたはディレクトリが存在する場合は TRUE を返し、存在しない場合は FALSE を返します。

しかし、この

関数 は、Web ページで UTF8 エンコーディングが使用されている場合、中国語のファイル名またはフォルダー名の正しい値を返すことができず、常に false を返します。テストの結果、この状況の原因はエンコーディングの違いにより PHP が正しく判断できないことが原因であると分析しました。

以下のコードは、ファイルの有無に関わらず、正しい値を返すことができません:

<?php;
$file="/attachment/21/0/中文.rar";
$newfile = dirname(FILE).$file;

echo file_exists($newfile);
?>

テスト後、UTF8エンコードをGB2312エンコードに変換する文を追加すると、正しい判定ができるようになります:

<?php
$file="/attachment/21/0/中文.rar";
$newfile = dirname(FILE).$file;

$file=iconv(&#39;UTF-8&#39;,&#39;GB2312&#39;,$file);

echo file_exists($newfile);
?>

以上がPHP の file_exists 関数が中国語の名前をサポートしていない問題の解決策の詳細な例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。