- ベストアンサー
DreamWeaverで保存すると、PHPファイルが正常に動作しない件
- DreamWeaverで保存すると、ローカル環境で正常に動作していたPHPファイルが、保存後に動作しない問題が発生しています。
- 問題の原因は、おそらく2つのファイルで文字コードが異なるためだと思われます。
- この問題に対する対処法を知りたいです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
やっぱり文字コードの問題が一番怪しいです。 サーバとのファイルのやりとりにFFFTPを使っていたりしませんか? FFFTPには文字コードを変換する機能があるので、それによってサーバには 正しい文字コードでアップされるため動く。ソースをダウンロードする際も、 ローカルで正しい文字コードでダウンロードされるので動く。 そのような挙動に思えます。 DreamWeaverに文字コードを変えて開くや保存する機能があれば、なおさら起こりやすいと思いますが、DreamWeaverを使ったことがないのでわかりません。 ファイルの保存後に、ファイルサイズが若干変わっていませんか? まったく同じであれば、保存の前後で一致するはずです。 diff はテキストファイルの差分比較のツールです。一般的に使われているツールです。 Windows用のものであれば、2つのファイルを選択して、右と左に並べて違いのある行を表示してくれます。 Vectorなどでもテキスト比較としてカテゴライズされているので、どれか試してみてはどうでしょうか? http://www.vector.co.jp/vpack/filearea/win/util/text/diff/
その他の回答 (2)
- bm_hiro
- ベストアンサー率51% (200/388)
状況が違うようなので、あまり参考にならないかもしれませんが、↓こういう事もあるようです。 他人のブログに丸投げですが。 http://blog.tasdesign.jp/web_design/2010_02_11/dreamweaver-php.html
お礼
どうもありがとうございます。 ブログを見てきました。 結論から先に言いますと、なんと、解決しました! (おそらく、解決。) ただ、ブログの内容とはほとんど関係なく解決しました。 >これで文字コードが指定できるテキストエディタやphpエディタを利用せずDreamweaverだけでPHPを保存したり これはブログを一部抜粋したものです。 「phpエディタ」という所に目が留まりまして、 他のエディタで保存したらどうなるのか、を試してみたくなったのです。 試しに、テキストエディタソフトTepaEditorで保存してみましたところ、 ファイルは「改行コード:CRLF(Windows)」に設定されているではないですか。 これ、怪しくないだろうか?と思いまして、 LF(Unix)に変更して保存してみたところ、なんと! Windowsの中で動いているテストサーバなのに、Unixの改行コードの方で 正常動作することを発見! そこで、これはDWでも本当に同じ結果になるのか?を調べるべく、 DWの環境設定でLFにしたところ、こちらでもちゃんと動作するではないですか。 ということで、今後は、CRLFではなくLFに設定しておこうかと思いますが、 これはこれで、何か他の不具合が発生しないか心配だったりします。 以上で、とりあえずは解決しました。 みなさんのアドバイスが刺激となり、 色々と試せたことで、早めに解決することができたと思っています。 みなさん、本当にありがとうございました。
文字コードの変化かどうかは、テキストファイルの比較ツール diffやDreamWeaverのファイルバージョン(ファイル差分)管理機能で確認してみてください。 ほかには、OSによる改行コードの違い、UnicodeエンコードのBOMの違いが関わっている可能性があるので、ファイルをバイナリエディタで確認してみてください。
お礼
どうもありがとうございます。 diffツールというものを初めて知ったため、 正直、よくわかりませんでした。 もう少し簡単に調べる方法があると嬉しいのですが、 何もやらずに文句を言うのでは話が進まないので、 試しにフリーソフトを入れてゴニョゴニョしてみました。 結果は、 どのソフトも使い物にならないのか、エラーが出て解決しませんでした。 私の使い方が良くない可能性もありますが、 その判定をし始めると、今度はそっちに話が移ってしまいそうなので、 ここでは、とりあえずストップしておきます。 ほぼ間違いなくこのソフトでなら確認できます、というソフトがありましたら、 教えて下さい。その場合には、再挑戦してみたいと思います。 また、バイナリエディタについてですが、 これも初めてで、同様にフリーのもので試してみました。 2ファイルそれぞれ、バイナリデータで中身を見ることはできましたが、 開いた後、それの何を見ればいいのか分からないため、 ここでもやはり解決しませんでした。 ちなみに、BOMについては、 DW(DreamWeaver)の方の設定を見ますと、どちらのファイルも、 □Unicode署名を含める のチェックがハズレタ状態です。 なお、質問文についての補足ですが、 ローカル環境で正常に動かなかったPHPファイルを、 いったんレンタルサーバにアップすると、そこでは動くようになります。 そして、それをダウンロードして、何もいじらずにそのまま使うと、 ローカル環境でも正常に動きます。 このことから、レンタルサーバにアップすることで、 何かが矯正(改善)され、動くようになるようなのです。 なんとも不思議な現象で、 これだと、編集して保存する度に、わざわざレンタルサーバへアップし、 それをダウンロードしてローカルで動作確認する、というフローになり、 非常に面倒です。 (レンタルサーバのOSはLinuxです。)
お礼
どうもありがとうございます。 >サーバとのファイルのやりとりにFFFTPを使っていたりしませんか? まさにドンピシャです。 FFFTPを使ってダウンロードしています。 (アップロードはDWから直接送ってます。) >FFFTPには文字コードを変換する機能があるので なるほど、このあたりが非常に怪しいですね。 >ファイルの保存後に、ファイルサイズが若干変わっていませんか? diffツールを使った際にエラーで終わったのですが、 差分のサイズだけはなぜか表示されていまして、 それを見ますと、意外と差があったように思います。 なので、両者がバックグラウンドでは微妙に異なっているのは確かだと言えます。 >Windows用のものであれば、2つのファイルを選択して、右と左に並べて違いのある行を表示 2つのファイルにおいて、 コード上では、全く同じものなのですが、 diffツールで違いを表示してくれるというのは、 それは、バイナリデータの話でしょうか? また、バイナリだとして、そのバイナリの違いを見たところで、 それが何を意味しているのか、私に判断できそうでしょうか? さきほど、バイナリエディタでファイルを開いてみたところ、 両者に違いがあることはわかりましたが、 それ以上のことは私には解読不能でした。 具体的に、何をどうすると、何がわかる、のでしょうか。 それと、結局の所、 DW上で保存しても、正常動作させられるようにするには、 どうしたら良いと思われますか。 diffツールで違いを判定してからじゃないと、 話は先に進みませんかね…。 FFFTPでアップした後の状態と、DWの保存後の状態を一致させるのは、 無理なのでしょうか。 もっとも、一致させなくても、 どちらのケースでも同様の動作をしてくれるのであれば、 問題ないのですが…。 しかし、少し前進しました。ありがとうございます。