• ベストアンサー

mkdirでフォルダ名“予定表示”を作成したら“・定・示”となります

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

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.4

文字コードの設定か、何かおかしいんじゃないかな stripslashes(), htmlspecialchars(), quotemeta() magic_quotes あたりで余計なことをしているとか windows 環境で、インナー文字コードがシフトJISで mkdir してもなにも問題ないんじゃないかと思うけど

THUBAN
質問者

お礼

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

THUBAN
質問者

補足

ご回答ありがとうございます。状況ですが、 $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噂浬欺圭構蚕十申曾箪貼能表暴予禄兔喀媾彌拿杤歃濬畚秉綵臀藹觸軆鐔饅鷭) で、フォルダ生成した場合、フォルダ名を拾って、ブラウザ表示させるところでエラーとなっています。 ただ今、引っかかっている場所を探っているところです・・・

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

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

THUBAN
質問者

お礼

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

THUBAN
質問者

補足

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

全文を見る
すると、全ての回答が全文表示されます。
  • stream47
  • ベストアンサー率33% (4/12)
回答No.2

mkdirに "予定表示"ではなく'予定表示'を渡したらどうかな?(自分は確認してません) そもそも、PHPファイルはShift_JISではなくUTF-8かEUC-JPで作成することをお勧めします。UTF-8かEUC-JPならこの問題は発生しないはずです。

THUBAN
質問者

お礼

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

THUBAN
質問者

補足

ありがとうございました。 mkdirに渡すのが、“予定表示”固定ではないですが、 試しにmkdirに渡している変数の部分を'予定表示'としてみました。 しかし、やはり“・定・示”でフォルダが作成されます。 ちなみに、mkdirを用いているPHPソースファイルを、 UTF-8やEUC-JPで作成保存してみましたが、 やはり、・定・示”でフォルダが作成されしまいます・・・ もちろん、ダメ文字(メタ文字?)以外では、きちんと処理され、 入力した名称でフォルダ名が作成されています。

全文を見る
すると、全ての回答が全文表示されます。
  • PrintScree
  • ベストアンサー率25% (538/2091)
回答No.1

ダメ文字の前に\記号(\予定\表示)を入れれば"予定表示"となると思います。 詳しい処理内容が書かれていないので、場合によっては処理を工夫する必要があります。

THUBAN
質問者

お礼

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

THUBAN
質問者

補足

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

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • ―ソ欺圭構蚕十申貼表予…などの文字化けを処理関数について

    ―ソ欺圭構蚕十申貼表予・・・など、\を付けないと文字化けして ブラウザ表示してしまう文字がありますが、 ある変数に代入された文字に対して、該当する文字の場合、 \処理して返してくれるようなJavaScript関数を、どうかご教授下さいませ。 よろしくお願い致します。

  • PHPでのフォルダ作成について

    始めて質問させていただきます。 今、PHPの勉強をしているのですが PHPでのフォルダー作成について困っています。 環境は 1. WindowsXP + IIS + PHP5.3.2 2.CentOS5.5 + Apache2.2.3+PHP5.1.6(テスト用に下記URLを参考に構築) http://centos.server-manual.com/ 今まで、1の環境にて開発をしていて問題なく動いていたのですが より本番に近い環境でと思い、2の環境を作り1のファイルをアップロードしました。 Apache自体は動いていて、HPの表示はされているのですが PHPで mkdir の処理が動かず(FALSEが帰ってくる)フォルダーの作成が出来ない状態でいます。 もちろん1の環境では問題なく動いていて、フォルダ作成も出来ていました。 2へアップロードした際は、ドメイン名等の定数のみの変更で、その他のソースは変えていません。 httpd.conf の設定の問題でしょうか? httpd.conf の User と Group は "apache" になっています。 ユーザー "apache "の権限でしょうか? 色々調べては見たのですが、どうも分からず質問させていただきました。 以上、設定内容等なにか情報が足りなければ、ご指示いただければ載せます。 よろしくおねがいします。

  • ソ噂浬欺圭構蚕十申曾箪貼能表などの文字化け

    CGIプログラムで、htmlに書き出す文字で、「ソ噂浬欺圭構蚕十申曾箪貼能表暴予禄兔喀媾彌拿杤歃濬畚秉綵臀藹觸軆鐔饅鷭」があると文字化けするので、文字の後ろに \ を付けますが、これらの文字はどうして文字化けしてしまうのか、どなたかご存知のかたお教え下さい。 前々から不思議に思っていて。。。

    • ベストアンサー
    • CGI
  • フォルダへのアクセス権の設定方法を教えてください

    Webサーバ上のプログラムからファイルサーバへアクセスしてフォルダの作成やファイル保存をしたいのですが、フォルダへのアクセス権がないためにエラーになります。 フォルダへのアクセス権の設定方法を教えてください。 ■環境等の詳細 ■Webサーバ OS:Windows Server 2016   WORKGROUP WEB:InternetInfomationServer 10 (IIS 10) PHP:7.2.1 このサーバのPHPプログラム内からファイルサーバにある共有フォルダへアクセスして、フォルダの作成やファイルの保存を行いたい。 ■ファイルサーバ OS:Windows Server 2016   WORKGROUP このサーバ上に共有フォルダを作成している。(\\fileserver\work) Webサーバ上のIISのアプリケーションプールは 名前       :"abcdefg"(DefaultAppPoolから変更してある) .Net CLRバージョン:v4.0 マネージパイプラインモード :統合 ID        :ApplicationPoolIdentity Webサーバのタスクマネージャでw3wp.exeのユーザ名を見ると"abcdefg"になっている。 WebサーバOSにログインしてからファイルサーバ上の共有フォルダへアクセスすると問題なく閲覧・フォルダの作成・ファイルの作成ができます。 PHPのログに書かれるエラーメッセージ mkdir(): Permission denied {"userId":6,"exception":"[object] (ErrorException(code: 0): mkdir(): Permission denied at C:\\-(PHPファイルのパス)-XXXXXXX.php:60) C:\\-(PHPファイルのパス)-XXXXXXX.php(60): mkdir('\\\\\\\\fileserver\\\\work...', 511) エラーになった箇所のPHPのソースコードはmkdir("\\fileserver\work\123",0777)としてあります。 ちなみに、Webサーバ上に作成した共有フォルダには問題なくアクセスできて閲覧・フォルダの作成・ファイルの作成はできます。 (PHPプログラムのバグではないと思っています。) ネットでいくつか調べてやってみたのですが、うまくいきません。 https://technet.microsoft.com/ja-jp/library/ee886292.aspx 共有フォルダに対してIISユーザ(abcdefg)の権限が付与されていないのでは?と思い、"IIS AppPool\abcdefg"を設定したのですが、設定後に確認すると追加設定した箇所が"不明なアカウント(s-1-5-82-...)"となってしまいます。

  • PHPの文字化けするもじについて

    お問い合わせフォームをPHPで作っているのですが、 下記のPHPで文字化けする文字の一覧の中で、 IX・・がどうしても文字化けしてしまいます。 私はエンジニアではないのですが、開発をしている中国人のエンジニアがどうしても修正することができなくて困っています。 コードの記述や、参考サイト(日本語でOK)があれば、 エンジニアが見てわかりますので、どなたか分かる方はいらっしゃらないでしょうか。 ■PHP文字化けする文字一覧 ― ソ Ы IX 噂 浬 欺 圭 構 蚕 十 申 曾 箪 貼 能 表 暴 予 禄 兔 喀 媾 彌 拿 杤 歃 濬 畚 秉 綵 臀 藹 觸 軆 鐔 饅 鷭 よろしくお願いいたします。

    • 締切済み
    • PHP
  • Jstringライブラリの在りかとインストール方法?

    $HTTP_GET_VARSを使って文字化けを起こしています。 Jstringというライブラリを使うと解決するようなことが書かれていたサイトを見つけたのですが、WindowsサーバのJstringライブラリの在りかとインストール方法をご存知の方、ご教授下さいませ。 Linuxサーバ環境でのことしか書かれていないサイトが多くて・・・ ちなみに環境は、以下です。 サーバ環境:Windows2003Server、IIS、PHP4.4.2 開発クライアント環境:WindowsXPpro、Apache2.0.55、PHP4.4.2 よろしくお願い致します。

    • ベストアンサー
    • PHP
  • フォルダ名とファイル名について

    現在、Windows2003 Serverにてファイル共有をしておりますが、 下記のような、おかしな現象が発生しております。 XPクライアントから共有フォルダにアクセスする際に マイネットワークからアクセス場合とショートカットからフォルダへ アクセスする場合でかなりアクセス速度に差が出ております。 ショートカットからアクセスする方が、レスポンスがかなり速い状況です。 また、マイネットワークからの共有フォルダへのアクセスで レスポンスの速いフォルダと遅いフォルダがあります。 なにかフォルダ名の文字列が関係しているとも考えたのですが いかがなものでしょうか? こういった現象・マイクロソフトで推奨している文字列など分かる方が いましたら、教えていただけませんでしょうか? よろしくお願いいたします。

  • コマンドラインでのis_dir、is_file

    コマンドライン上でPHPを走らせてフォルダ操作を色々やってたんですけど <?php echo 'ソ'; ?> で何故かエラーになることに気づきました。 再帰処理でディレクトリ構造を連想配列にいれてそこから色々なフォルダの条件検索をするプログラムを作っていなんですが、走らせると時々"is_dirにもis_fileにも引っかからないフォルダやファイル"というのが出てきてよく分からないなぁと思っていたら、どうやらファイルやフォルダ名に問題があるようでした いろいろみて気付いたのは"ソ"だけでしたが、ある特定の条件のフォルダ名やファイル名では挙動が不安定になることがわかりました。もちろんソが含まれていない物もたくさんあります。全体の5%ぐらいです これを解決する方法はありますか? コマンドプロンプトおよび実行ファイルの文字コードはShift_JISです

    • ベストアンサー
    • PHP
  • perlでフォルダ作成

    こんにちは。 毎日、その日の日付のフォルダ名を作成して作業をしているのですが、 毎回、その作業に手間がかかるので、Perlを用いてフォルダを作成したいと思っています。 普段、Perlを用いて処理をすることが多いので、 今回もPerlでプログラムを作りたいと思っているのですが、 Windows環境(windows7)でPerlを用いてフォルダを作成することは出来るのでしょうか。 やりたいことは、プログラムを実行するだけで、その日の日付をフォルダ名とするフォルダの作成です。 例えば、2011年09月23日ならば、 フォルダ名が、『20110923』となるようなプログラムを書きたいと思っております。 出来るかどうかをご存じの方は、ヒントもしくはサンプルプログラムをご教授ください>< よろしくお願いします・・!

    • ベストアンサー
    • Perl
  • マイネットワーク フォルダ内での表示

    「マイネットワーク」を開くと、ネットワークサーバ内の共有フォルダが表示されています。 その表示方法が、 a  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 『フォルダアイコン』 abc - AAA 1  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 『フォルダアイコン』 111 - AAA  『フォルダアイコン』 123 - BBB あ  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 『フォルダアイコン』 あいう - AAA となっています。(チョット分かりづらいかも知れませんが・・・) ようは、共有フォルダ名の最初の一文字で分類されている状態です。 これだと見づらいので、「インターネット」や「ローカルネットワーク」等で分類できればと思います。 操作方法がわからないので、ご教授頂ければと思います。 よろしくお願いします。

このQ&Aのポイント
  • 金色の変わったナットを外す方法を教えてください。ノブを外してもボルトが長くて抜けません。下側のワッシャのような部品は回転します。
  • 金色の部品を取り外してボルトを抜く方法を教えてください。切断はしたくありません。
  • 金色の変わったナットを外すコツや方法を知っている方、教えてください。
回答を見る