dポイントプレゼントキャンペーン実施中!

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を使わない単純なファイルの場合には、保存前と保存後で、
問題が発生することはなさそうです。
(ただ、ファイル形式がバックグラウンドで変化しているかもしれない点は同じです。
それが問題として表面化するかしないかの違いだけだと思います。)
---------------

以上、何かご存知の方、どうかアドバイスをお願い致します。
お礼にて、必ずお返事致します。

A 回答 (3件)

やっぱり文字コードの問題が一番怪しいです。



サーバとのファイルのやりとりにFFFTPを使っていたりしませんか?
FFFTPには文字コードを変換する機能があるので、それによってサーバには
正しい文字コードでアップされるため動く。ソースをダウンロードする際も、
ローカルで正しい文字コードでダウンロードされるので動く。

そのような挙動に思えます。
DreamWeaverに文字コードを変えて開くや保存する機能があれば、なおさら起こりやすいと思いますが、DreamWeaverを使ったことがないのでわかりません。


ファイルの保存後に、ファイルサイズが若干変わっていませんか?
まったく同じであれば、保存の前後で一致するはずです。

diff はテキストファイルの差分比較のツールです。一般的に使われているツールです。
Windows用のものであれば、2つのファイルを選択して、右と左に並べて違いのある行を表示してくれます。
Vectorなどでもテキスト比較としてカテゴライズされているので、どれか試してみてはどうでしょうか?
http://www.vector.co.jp/vpack/filearea/win/util/ …
    • good
    • 0
この回答へのお礼

どうもありがとうございます。

>サーバとのファイルのやりとりにFFFTPを使っていたりしませんか?

まさにドンピシャです。
FFFTPを使ってダウンロードしています。
(アップロードはDWから直接送ってます。)

>FFFTPには文字コードを変換する機能があるので

なるほど、このあたりが非常に怪しいですね。

>ファイルの保存後に、ファイルサイズが若干変わっていませんか?

diffツールを使った際にエラーで終わったのですが、
差分のサイズだけはなぜか表示されていまして、
それを見ますと、意外と差があったように思います。
なので、両者がバックグラウンドでは微妙に異なっているのは確かだと言えます。

>Windows用のものであれば、2つのファイルを選択して、右と左に並べて違いのある行を表示

2つのファイルにおいて、
コード上では、全く同じものなのですが、
diffツールで違いを表示してくれるというのは、
それは、バイナリデータの話でしょうか?
また、バイナリだとして、そのバイナリの違いを見たところで、
それが何を意味しているのか、私に判断できそうでしょうか?
さきほど、バイナリエディタでファイルを開いてみたところ、
両者に違いがあることはわかりましたが、
それ以上のことは私には解読不能でした。

具体的に、何をどうすると、何がわかる、のでしょうか。
それと、結局の所、
DW上で保存しても、正常動作させられるようにするには、
どうしたら良いと思われますか。
diffツールで違いを判定してからじゃないと、
話は先に進みませんかね…。

FFFTPでアップした後の状態と、DWの保存後の状態を一致させるのは、
無理なのでしょうか。
もっとも、一致させなくても、
どちらのケースでも同様の動作をしてくれるのであれば、
問題ないのですが…。

しかし、少し前進しました。ありがとうございます。

お礼日時:2010/12/16 12:55

状況が違うようなので、あまり参考にならないかもしれませんが、↓こういう事もあるようです。



他人のブログに丸投げですが。

http://blog.tasdesign.jp/web_design/2010_02_11/d …
    • good
    • 0
この回答へのお礼

どうもありがとうございます。

ブログを見てきました。

結論から先に言いますと、なんと、解決しました!
(おそらく、解決。)
ただ、ブログの内容とはほとんど関係なく解決しました。

>これで文字コードが指定できるテキストエディタやphpエディタを利用せずDreamweaverだけでPHPを保存したり

これはブログを一部抜粋したものです。
「phpエディタ」という所に目が留まりまして、
他のエディタで保存したらどうなるのか、を試してみたくなったのです。

試しに、テキストエディタソフトTepaEditorで保存してみましたところ、
ファイルは「改行コード:CRLF(Windows)」に設定されているではないですか。
これ、怪しくないだろうか?と思いまして、
LF(Unix)に変更して保存してみたところ、なんと!
Windowsの中で動いているテストサーバなのに、Unixの改行コードの方で
正常動作することを発見!
そこで、これはDWでも本当に同じ結果になるのか?を調べるべく、
DWの環境設定でLFにしたところ、こちらでもちゃんと動作するではないですか。

ということで、今後は、CRLFではなくLFに設定しておこうかと思いますが、
これはこれで、何か他の不具合が発生しないか心配だったりします。

以上で、とりあえずは解決しました。
みなさんのアドバイスが刺激となり、
色々と試せたことで、早めに解決することができたと思っています。
みなさん、本当にありがとうございました。

お礼日時:2010/12/16 14:24

文字コードの変化かどうかは、テキストファイルの比較ツール diffやDreamWeaverのファイルバージョン(ファイル差分)管理機能で確認してみてください。



ほかには、OSによる改行コードの違い、UnicodeエンコードのBOMの違いが関わっている可能性があるので、ファイルをバイナリエディタで確認してみてください。
    • good
    • 0
この回答へのお礼

どうもありがとうございます。

diffツールというものを初めて知ったため、
正直、よくわかりませんでした。
もう少し簡単に調べる方法があると嬉しいのですが、
何もやらずに文句を言うのでは話が進まないので、
試しにフリーソフトを入れてゴニョゴニョしてみました。
結果は、
どのソフトも使い物にならないのか、エラーが出て解決しませんでした。
私の使い方が良くない可能性もありますが、
その判定をし始めると、今度はそっちに話が移ってしまいそうなので、
ここでは、とりあえずストップしておきます。
ほぼ間違いなくこのソフトでなら確認できます、というソフトがありましたら、
教えて下さい。その場合には、再挑戦してみたいと思います。

また、バイナリエディタについてですが、
これも初めてで、同様にフリーのもので試してみました。
2ファイルそれぞれ、バイナリデータで中身を見ることはできましたが、
開いた後、それの何を見ればいいのか分からないため、
ここでもやはり解決しませんでした。

ちなみに、BOMについては、
DW(DreamWeaver)の方の設定を見ますと、どちらのファイルも、
 □Unicode署名を含める のチェックがハズレタ状態です。

なお、質問文についての補足ですが、
ローカル環境で正常に動かなかったPHPファイルを、
いったんレンタルサーバにアップすると、そこでは動くようになります。
そして、それをダウンロードして、何もいじらずにそのまま使うと、
ローカル環境でも正常に動きます。
このことから、レンタルサーバにアップすることで、
何かが矯正(改善)され、動くようになるようなのです。

なんとも不思議な現象で、
これだと、編集して保存する度に、わざわざレンタルサーバへアップし、
それをダウンロードしてローカルで動作確認する、というフローになり、
非常に面倒です。
(レンタルサーバのOSはLinuxです。)

お礼日時:2010/12/16 09:18

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