皆さん、こんにちは。
存在証明みたいな記事で申し訳ないのですが。
この間、PHP 4.4 でちょっとした作業をしていた時の話です。
親スクリプトファイルから、require を使って子スクリプトを呼び出し、子スク
リプトがまたケースに応じて require を使って孫スクリプトを呼び出すような
構造だったと記憶しています。
ちなみに、親スクリプトはデータベースとして MySQL を使ってました。
この時、タイトルに書いた不可解な状況に直面しました。
ソースの構造、文法等を見直して、さあ、ブラウザで表示してテストしてみよう
と思ったんですが、全く反応がありません(IE, FireFoxとも)。ブラウザ画面は
真っ白、ソースは白紙、エラーログにも何も残っていません。
「だめか」と思ってはみたものの、ある程度時間をかけて作っていたので、あき
らめきれず、エラーの原因を探っていたところ、require で呼び出した側のスク
リプト内に書かれた素の html ソースに
<img src="not_exist.jpg">
のような存在しない URL を参照していた画像タグがあり、これを存在するもの
に直したところ、突然ブラウザ画面に思った通りの表示が出ました。
「?」
PHP は内部的に HTML ソースの解析機能を持っていることはわかりますが、「画
像の URL まで調べるか、ふつう?」と思ってしまいます。また、スクリプト構
造が複雑でなければ、こんなエラーに出合ったこともありません。
ぐぐったりしても、それらしいページに出合うことはなく、時間も限られている
ので、アルゴリズムを変更して当初の目的は何とか達しましたが、いまだに上の
ような事態の原因はわからず、不可解な謎として記憶に残っています。
なんでこんなことになるんでしょう?
--
本田博通(閑舎)
テキストとスクリプトの http://www.rakunet.org/TSNET/