• 締切済み

日本語フォルダ名を使いたい

http://oshiete.nikkeibp.co.jp/kotaeru.php3?qid=2231715 上記と同じ質問なのですが・・ http://popilol.lolipop.jp/NiconicoPHP/pipipiga.html​ 上記のプログラムを利用していきたいと考えています。 こちらの状況としては、学校内のイントラでWebサーバーをanhttpd+PHP5、WindowsXPで立ち上げ、行事の写真を子供たちに見せたいと思っています。行事の写真は、普段ファイルサーバーに日本語フォルダ名で整理をしています。 管理者モードで日本語を表示できることは分かっているのですが、より簡単な手順で多くの先生方に協力を得ての運営を考えています。日本語フォルダ名やファイル名が使えるとファイルサーバーからのフォルダごとのコピーで済むので運営上非常に楽になるので利用をしたいと考えています。 FAQに簡単に日本語フォルダ名が使える説明があるのですが・・よくわかりません。(作者のサポートなしと記載あり)もしお分かりになる方がいましたら教えていただけるとありがたいです。こちらは、HTMLと多少PHPの理解があります。 下記がFAQの内容; pipipigaは、あらゆるサーバで動作可能な汎用性を考慮しているため、フォルダ名やファイル名の日本語対応をあえて行っておりませんが、ご利用サーバにmgstringという拡張モジュールがインストールされているのであれば、pipipiga.phpを改造することで対応可能です。具体的には、 1.dat/config.ini.datファイルのcQueryIsPathを0にする。 2.pipipiga.phpのvalidPath()を日本語対応する。 3.pipipiga.phpのmakeArgMenu()のbasename($idx)を日本語対応する。 でOKかと思います。」 以上です。よろしくお願いいたします。 なお、日本語ファイル名やフォルダ名が使え、サムネイルが作成でき、写真の表示ができるプログラムをご存知であれば、それを教えていただいてもかまいませんが・・

みんなの回答

回答No.2

> 修正に向けて勉強してみようとは思いますが 多少PHPの理解がある、という考えにちょっと温度差があったのでしょうか? てっきりソースを見れば解析出来るのかと思ってました。 PHPの勉強というか、ソースの勉強(解析)になると思うのですが。 > 工夫かっこ時間・・時間とあるということは、手間の問題で超難しくはない?? 超ではないと思います。但し、やっぱり使わない事前提のものを全角文字対応させると、 変なトコで動きが思ったように意図してくれなかったりして、実は難しい時もあります。 また今回の場合、作者がその手順3つだけを変えればなるだろうという憶測の元での情報です(恐らく)。 つまり、3つの手順を行ったからと言って全て問題なく動作するという保証もないのです。 今回の場合、動きが全く分からないので、どうしようもありません。 まずは修正を加える前に半角文字だけで動作と、全角文字を含んで動作させてみて、 全角文字が含まれる時、手順に記されてある関数か何かで問題が発生し、 エラーとするのかそのまま変な文字で登録されてしまうのか確認してみて下さい。 その後、問題になってそうなファイルをブラウザのアクセスとソースから判断し、 問題になってそうな箇所をechoなどを利用して内容を確認し、 mb_convert_encoding()辺りを使って手順にある処理を加工してあげてみて下さい。 手順にあるのは、全角文字だったら拒否するというようなチェックを外したり、マルチバイト関数をどこかに噛ませてあげる事で全角文字も動作するのかと思います。 一応、参考までに。

374385
質問者

お礼

aktakさん 再度の回答、丁寧にありがとうございます。 >ソースの勉強(解析)になると思うのですが。 >また今回の場合、作者がその手順3つだけを変えればなる >だろうという憶測の元での情報です(恐らく)。 >手順にあるのは、全角文字だったら拒否するというような >チェックを外したり、マルチバイト関数をどこかに噛ませて >あげる事で全角文字も動作するのかと思います。 ご指導いただいたこの辺りを参考に、がんばってみます。 >てっきりソースを見れば解析出来るのかと思ってました。 多少は解析できますが・・たいしたレベルではなく・・すいません。 解析途中で迷ったときは再度アドバイスいただけると幸いです。 ありがとうございました。

回答No.1

その後に続く >改造に関しては、調査および実装にそれなりの工数(時間)が掛かるため、大変申し訳ありませんが、サポートはしておりません。ご了承ください。 という文章から、日本語対応はされていません。そして「それなりの工数」という言葉があるので、簡単ではないようです。 あなたがプログラムの修正を行う必要があります。 それを不可能とするならば、手順を踏んでも日本語対応にはならないでしょう。 手順としては、php.iniのmbstringに関するコメントを取り外します。 基本的には「;」を消せばよいです。 ;extension=php_mbstring.dll ;mbstring.language = Japanese ;mbstring.internal_encoding = EUC-JP ;mbstring.http_input = auto ;mbstring.http_output = SJIS ;mbstring.encoding_translation = Off ;mbstring.detect_order = auto ;mbstring.substitute_character = none; ;mbstring.func_overload = 0 ;mbstring.strict_encoding = Off 最後にwebサーバの再起動を忘れずに。 その後、手順1.2.3.を行ってください。

374385
質問者

お礼

回答ありがとうございます。 >あなたがプログラムの修正を行う必要があります。 おっしゃるとおりです。修正に向けて勉強してみようとは思いますが、どのあたりの勉強をしたらいいのか・・そこから勉強しろってことですね。まぁ、がんばってみますが・・・工夫かっこ時間・・時間とあるということは、手間の問題で超難しくはない??なんて思ったりもします。そんなことはないのでしょうか・・この辺を勉強したら?なんてアドバイスいただけるとありがたいです。 マルチバイトに関してもアドバイスありがとうございます。 これに関しては、はずしてあります。 今後とも何かありましたら、よろしくお願いいたします。

関連するQ&A