• ベストアンサー

glob関数で日本語文字が取得できません。

PHPでglob()関数を使って画像ファイル一覧を取得しようと試みたのですが、引数に"C:/Documents and Settings/xxxxxx/My Documents/My Pictures/風景/*.jpg" といった引数にすると日本語部分の文字が文字化けしているようで取得できません。 glob関数は2バイト文字は使えないのでしょうか? それともOSとの文字化けの関係なのでしょうか? 解決するにはどうしたらいいのでしょう? [実行環境] OS : Windows XP PHP version : 5.1.6 Server: Apache 2.2.3;

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

解決案ではなく回避案ですけれど、日本語以外のディレクトリにファイルをコピーしてそれにアクセスしたらどうですか?PHPで(というかなんの言語でも)ディレクトリを指定するなら、相対パスでかつ空白を含まない様にするもんだと思います^ ^そうじゃないと、たとえば配布とかしにくいですし、トラブルの元ですし

nakacher
質問者

お礼

ありがとうございました。 文字化けはOSの問題のようでした。 パスについてはローカルで試したため絶対パスで指定してしまいました。 アップするときには相対パスでするつもりです。

その他の回答 (1)

  • shimix
  • ベストアンサー率54% (865/1590)
回答No.2

文字コードの不一致というのがありそうですが・・。XPのファイルシステムでは日本語の文字コードは何でしたっけ?内部はutf-8で外からはSJIS?(自信なし) phpはdefaultでmb_internal_encodingがEUC-JPだと思いますが、SJISに設定されてますでしょうか。 いずれにしても(たとえSJISに設定して動いたとしても)No.1同様、空白や日本語を含むファイル名・ディレクトリ名は避けるのが吉だと思います。

nakacher
質問者

お礼

ありがとうございました。 OSの文字化けのようでShift-JISに変換してなんとか解決しました。 ご指摘のとおり、アップする場合は日本語や空白は気をつけたいと思います。

関連するQ&A

専門家に質問してみよう