※ ChatGPTを利用し、要約された質問です(原文:超難問バグ■ほとんど等価のファイルで挙動が異なる件)
DreamWeaverで保存すると、PHPファイルが正常に動作しない件
超難問バグ■ほとんど等価のファイルで挙動が異なる件
windowsXP(SP3),
DreamWeaverCS3,
PHP5
の環境での質問です。
レンタルサーバー上で問題なく動くPHPファイルを、
ダウンロードし、ローカル環境(自分のPC内のテスト環境)にて、
そのファイルを開くと、これもまた、問題なく動きます。
ここまでは想定内です。
次に、そのファイルをDreamWeaverで開き、
コード内容を同じ状態に保ったまま、ただ「保存」します。
そして、そのファイルをローカル環境で開くと、
正常に動作しません。
DreamWeaverで保存するまでは問題なく動いていたPHPファイルが、
保存をした瞬間、オカシクなるようなのです。
(何度試しても、同じ結果になります。)
全く同じファイルであると思える2つのファイルで、
どうしてこのように、挙動に差異が生じるのでしょうか。
この問題の原因として、私が怪しいと疑っている点は、
ずばり、2ファイルそれぞれで、
「文字コード」が異なる(変化している)かもしれない点です。
ここまでそっくりな(クローンとも思える)2つのファイルを見比べ、
かなり長い時間、「どこに違いがあるんだ~~???」と、ハマっていました。
そして、色々試して、ようやく、
DreamWeaverで保存すると、オカシクなるのでは!?
と気付いたのです。
とりあえず、オカシクなるきっかけは分かりました。
この質問を通し、私が知りたいことは、
この問題の発生原因と、その対処法です。
-----補足------
上記にて、
コード内容を同じ状態に保ったまま、ただ「保存」します。
と書きましたが、その意味は、
「何の変化も与えないと、DreamWeaverでは、新たに保存することができないため、
何かしら編集し、すぐそれを取り消す、ということをしてから保存する」
ということです。
実質、コード自体は何も変わっていません。
ファイル全体を選択し、それをコピーし、一度全体を消して真っ白にし、
その上で、ペーストしてから保存(つまり、コード自体は変化ゼロ)、
という方法でも結果は同じでした。
(ファイルの保存によって、ファイル形式?が変わっているのでしょうか…?)
ちなみに、DreamWeaverのメニュー「修正>ページプロパティ>タイトル/エンコーディング」
で文字コードを確認できますが、これは、保存前も後もUTF-8です。
PHPファイルの内容は繁雑なので簡単に説明しますと、
Warning: DOMDocument::load(http:// のようなエラーを吐くとおり、
XMLデータをDOMで引っ張ってくるコードになります。
(おそらく、ここでしかエラーは発生しないはず。)
DOMを使わない単純なファイルの場合には、保存前と保存後で、
問題が発生することはなさそうです。
(ただ、ファイル形式がバックグラウンドで変化しているかもしれない点は同じです。
それが問題として表面化するかしないかの違いだけだと思います。)
---------------
以上、何かご存知の方、どうかアドバイスをお願い致します。
お礼にて、必ずお返事致します。
お礼
どうもありがとうございます。 >サーバとのファイルのやりとりにFFFTPを使っていたりしませんか? まさにドンピシャです。 FFFTPを使ってダウンロードしています。 (アップロードはDWから直接送ってます。) >FFFTPには文字コードを変換する機能があるので なるほど、このあたりが非常に怪しいですね。 >ファイルの保存後に、ファイルサイズが若干変わっていませんか? diffツールを使った際にエラーで終わったのですが、 差分のサイズだけはなぜか表示されていまして、 それを見ますと、意外と差があったように思います。 なので、両者がバックグラウンドでは微妙に異なっているのは確かだと言えます。 >Windows用のものであれば、2つのファイルを選択して、右と左に並べて違いのある行を表示 2つのファイルにおいて、 コード上では、全く同じものなのですが、 diffツールで違いを表示してくれるというのは、 それは、バイナリデータの話でしょうか? また、バイナリだとして、そのバイナリの違いを見たところで、 それが何を意味しているのか、私に判断できそうでしょうか? さきほど、バイナリエディタでファイルを開いてみたところ、 両者に違いがあることはわかりましたが、 それ以上のことは私には解読不能でした。 具体的に、何をどうすると、何がわかる、のでしょうか。 それと、結局の所、 DW上で保存しても、正常動作させられるようにするには、 どうしたら良いと思われますか。 diffツールで違いを判定してからじゃないと、 話は先に進みませんかね…。 FFFTPでアップした後の状態と、DWの保存後の状態を一致させるのは、 無理なのでしょうか。 もっとも、一致させなくても、 どちらのケースでも同様の動作をしてくれるのであれば、 問題ないのですが…。 しかし、少し前進しました。ありがとうございます。