院生エンジニアのにっき

  • Change style to Blue
  • Change style to Red
  • Change style to Green
  • Change style to Pink

Windows+PHP+UTF8環境で日本語のファイル名リストを出力する   2008-07-14

なんてことないソースコード(環境はWindows+UTF8のソース)でローカルディレクトリからファイル名リストを取得したかたtんですが、

  1. <?php
  2. $dir = opendir('日本語を含むローカルパス');
  3. while(false !== ($path = readdir($dir))) {
  4.         echo $path.'<br/>';
  5. }
  6. ?>

とすると、oepndirの行でfailed to open dir: Result too large in ** on line 2と怒られてしまいます。

パスのディレクトリは存在しているのでおかしいな・・・と20分ほどはまってしまいました。。

色々試した結果、ごくごく単純なミスで、

$dir = opendir(mb_convert_encoding('日本語を含むローカルパス','SJIS','UTF-8');

で解決できました。

実行環境がUTF-8なので、Windows環境に合わせてパス名をSJISに変換しないといけなかったんですね。


コメントを書く