最速怪談選手権

いわゆるダメ文字(―ソ欺圭構蚕十申貼表予など)を用いた
フォルダ名なのですが、PHP内でmkdirを用いて処理すると、
すべて“・”になってしまいます。
解決方法をご存知の方がいましたら、どうかご教授下さいませ。
よろしくお願い致します。

サーバ環境は、Windows2003 IIS
PHPは、Ver 4.4.2

A 回答 (4件)

文字コードの設定か、何かおかしいんじゃないかな


stripslashes(), htmlspecialchars(), quotemeta()
magic_quotes
あたりで余計なことをしているとか
windows 環境で、インナー文字コードがシフトJISで
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噂浬欺圭構蚕十申曾箪貼能表暴予禄兔喀媾彌拿杤歃濬畚秉綵臀藹觸軆鐔饅鷭)
で、フォルダ生成した場合、フォルダ名を拾って、ブラウザ表示させるところでエラーとなっています。
ただ今、引っかかっている場所を探っているところです・・・

補足日時:2006/03/10 11:25
    • good
    • 0
この回答へのお礼

この件は、取りあえず、解決に至りました。
どうもありがとうございました!

お礼日時:2006/03/13 17:01

予\定表\示でもだめですか?

この回答への補足

はい、それでもダメでした・・

補足日時:2006/03/10 09:24
    • good
    • 0
この回答へのお礼

この件は、取りあえず、解決に至りました。
どうもありがとうございました!

お礼日時:2006/03/13 17:00

mkdirに "予定表示"ではなく'予定表示'を渡したらどうかな?(自分は確認してません)



そもそも、PHPファイルはShift_JISではなくUTF-8かEUC-JPで作成することをお勧めします。UTF-8かEUC-JPならこの問題は発生しないはずです。

この回答への補足

ありがとうございました。

mkdirに渡すのが、“予定表示”固定ではないですが、
試しにmkdirに渡している変数の部分を'予定表示'としてみました。
しかし、やはり“・定・示”でフォルダが作成されます。

ちなみに、mkdirを用いているPHPソースファイルを、
UTF-8やEUC-JPで作成保存してみましたが、
やはり、・定・示”でフォルダが作成されしまいます・・・

もちろん、ダメ文字(メタ文字?)以外では、きちんと処理され、
入力した名称でフォルダ名が作成されています。

補足日時:2006/03/09 21:36
    • good
    • 0
この回答へのお礼

この件は、取りあえず、解決に至りました。
どうもありがとうございました!

お礼日時:2006/03/13 17:00

ダメ文字の前に\記号(\予定\表示)を入れれば"予定表示"となると思います。



詳しい処理内容が書かれていないので、場合によっては処理を工夫する必要があります。

この回答への補足

ご回答ありがとうございます。
mkdir()で、フォルダ作成処理した時点で、変数に与えられた“予定表示”は、
“・定・示”という名でフォルダとなってしまいますので、
そのフォルダ名をブラウザ表示するので、当然、“・定・示”と
表示されてしまうのです。

補足日時:2006/03/09 21:02
    • good
    • 0
この回答へのお礼

この件は、取りあえず、解決に至りました。
どうもありがとうございました!

お礼日時:2006/03/13 16:59

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!