- ベストアンサー
mkdirでフォルダ名“予定表示”を作成したら“・定・示”となります
いわゆるダメ文字(―ソ欺圭構蚕十申貼表予など)を用いた フォルダ名なのですが、PHP内でmkdirを用いて処理すると、 すべて“・”になってしまいます。 解決方法をご存知の方がいましたら、どうかご教授下さいませ。 よろしくお願い致します。 サーバ環境は、Windows2003 IIS PHPは、Ver 4.4.2
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
文字コードの設定か、何かおかしいんじゃないかな stripslashes(), htmlspecialchars(), quotemeta() magic_quotes あたりで余計なことをしているとか windows 環境で、インナー文字コードがシフトJISで mkdir してもなにも問題ないんじゃないかと思うけど
その他の回答 (3)
- yambejp
- ベストアンサー率51% (3827/7415)
予\定表\示でもだめですか?
お礼
この件は、取りあえず、解決に至りました。 どうもありがとうございました!
補足
はい、それでもダメでした・・
- stream47
- ベストアンサー率33% (4/12)
mkdirに "予定表示"ではなく'予定表示'を渡したらどうかな?(自分は確認してません) そもそも、PHPファイルはShift_JISではなくUTF-8かEUC-JPで作成することをお勧めします。UTF-8かEUC-JPならこの問題は発生しないはずです。
お礼
この件は、取りあえず、解決に至りました。 どうもありがとうございました!
補足
ありがとうございました。 mkdirに渡すのが、“予定表示”固定ではないですが、 試しにmkdirに渡している変数の部分を'予定表示'としてみました。 しかし、やはり“・定・示”でフォルダが作成されます。 ちなみに、mkdirを用いているPHPソースファイルを、 UTF-8やEUC-JPで作成保存してみましたが、 やはり、・定・示”でフォルダが作成されしまいます・・・ もちろん、ダメ文字(メタ文字?)以外では、きちんと処理され、 入力した名称でフォルダ名が作成されています。
- PrintScree
- ベストアンサー率25% (538/2091)
ダメ文字の前に\記号(\予定\表示)を入れれば"予定表示"となると思います。 詳しい処理内容が書かれていないので、場合によっては処理を工夫する必要があります。
お礼
この件は、取りあえず、解決に至りました。 どうもありがとうございました!
補足
ご回答ありがとうございます。 mkdir()で、フォルダ作成処理した時点で、変数に与えられた“予定表示”は、 “・定・示”という名でフォルダとなってしまいますので、 そのフォルダ名をブラウザ表示するので、当然、“・定・示”と 表示されてしまうのです。
お礼
この件は、取りあえず、解決に至りました。 どうもありがとうございました!
補足
ご回答ありがとうございます。状況ですが、 $a <-- 予定表示 が代入される $d <-- フォルダが作成されるところのパスが代入される ---------------------------------------------------- function p($s) { $s=str_replace("//","/",$s); $s=str_replace("\\\\","\\",$s); $s=str_replace("\\","/",$s); return($s); } mkdir(p($d.'/'.$a),0755) ---------------------------------------------------- を実行すると、・定・示 でフォルダが生成されます。 どうやら、str_replaceで、上手くいけてないようです。 以下のようにしてみたところ・・ function p($s) { $s=str_replace("//","/",$s); $s=str_replace("////","//",$s); $s=str_replace("//","/",$s); return($s); } 上手く、予定表示と生成されました。 現在は、予 や 予表 や 予定表 という具合に、フォルダ名の最後がいわゆる メタ文字 (―ソЫIX噂浬欺圭構蚕十申曾箪貼能表暴予禄兔喀媾彌拿杤歃濬畚秉綵臀藹觸軆鐔饅鷭) で、フォルダ生成した場合、フォルダ名を拾って、ブラウザ表示させるところでエラーとなっています。 ただ今、引っかかっている場所を探っているところです・・・