アファメーションで独立・起業・夢実現。「いきなり!社長宣言!!」-“夢は口に出すことで実現する!”というアファメーション:ライブラリー

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

ページトップ△

ページトップ△