アファメーションで独立・起業・夢実現。「いきなり!社長宣言!!」-“夢は口に出すことで実現する!”というアファメーション:ライブラリー
2010年4月24日
PHP、FireFox、Skypeアドオンの組み合わせで変数内で電話番号を扱ったときの不具合。
夢実現のアファメーションを実践する起業家にもっとも読まれているブログは?
電話番号が一箇所だけ表示されない!?
再現性があるかどうか分かりませんが、思いっきりハマったのでメモ。
PHPで変数に電話番号を入れて、それを複数の場所でecho出力しようとしたときに、なぜか一番最初の文字列だけ一瞬表示されてすぐに消える...という現象が起こりました。
まったく原因がわからず悶絶。
例えば、こんな感じ。
まず、変数に電話番号を文字列として代入。
$tel = '03-1234-5678';
んで、body内で
Tel : <?php echo $tel; ?>
と記述。
この場合、出力結果は
Tel : 03-1234-5678
と、正常に出力される。
でも、
Tel1 : <?php echo $tel; ?>
Tel2 : <?php echo $tel; ?>
Tel3 : <?php echo $tel; ?>
と、複数個出力するようなコードを書くと、なぜか最初のTel1の右側の部分の出力が一瞬表示されてすぐに消えてしまう。
結果、
Tel1 :
Tel2 : 03-1234-5678
Tel3 : 03-1234-5678
と表示されてしまう。
ソースを見るとちゃんと出力されているので、何が原因か分からなかった。
(※ちなみに、FireFox以外では問題がなかった。)
原因はSkypeのアドオン。
コードを書き直したり、シングルクォーテーションをダブルクォーテーションに変えたり、ハイフンがダメなのか...といろいろ試してみたけど、結局、意外な落とし穴が。
ダメもとでFireFoxをセーフモードで起動すると、なんと、すべての電話番号が表示されているじゃありませんかっ!?
Tel1 : 03-1234-5678
Tel2 : 03-1234-5678
Tel3 : 03-1234-5678
どうやらアドオンがおイタをしてるようなので、FireFoxの「ツール⇒アドオン」を見ると、以前入れた(というか、勝手に入れられた)「Skype」のアドオンがそこに。
(サイト上に電話番号があると、勝手にSkypeのボタンに置き換わるヤツです。)
とりあえず、「電話番号」の表示がおかしい(ソース上は出力されている)ので、そのアドオンを削除して再起動して確認すると...。
...ちゃんと全部の番号が表示されるようになりました!
(FireFox以外で問題がなかったのは、Skypeのアドオンが入っていなかったからか?)
ってことで、他のマシン、ブラウザで再現性があるかどうか分かりませんが、とりあえず僕の環境(Win7 64bit版 FF3.6.3)ではSkypeのアドオンが原因で上記のような不具合が起こっていたようです。
※Skypeのアドオンって、ソフトをインストールすると勝手に入っちゃうから、意外とインストールされているのかなぁ...。だとしたら、すごく面倒なんだけど。
この記事に関連する(かもしれない)書籍
投稿者 kuro : 2010年4月24日 05:03 | ID:825