氣象報告常常不準

台湾生活。華語・台湾語学習。システム関連の話題など。

_fake (お題:納涼!ほんとにあった怖いコード)

納涼!ほんとにあった怖いコード(by CodeIQ×はてな)

 

↓↓↓ ここに君が見たクソコードを書こう!! ↓↓↓

(日本語版のソース中)

 htmlspecialchars_decode_fake();

(英語版のソース中)

 htmlspecialchars_decode();

 ↑↑↑ここまで!!↑↑↑

 

 むかし、ある同僚が私に言った。

 外注したPHPコードのバグが取れない。

 

 「日本語版」は動くのに「英語版」は動かない。

 「業者の開発環境」ではどちらも動くのに、「本番環境」では、『英語版だけ』が動かない。

 

 業者は「鋭意調査中ですが、原因不明です」の繰り返し。

 埒が明かない。

 数週間が過ぎてしまった。

 

 ・・とのことだった。(直接の担当ではなかったが、私はPHPを少しかじっていた。その場には、ほかにPHPコードが読める人は、いなかった。)

  

 とりあえず見てみる・・・エラー発生箇所を探してみると、

htmlspecialchars_decode();

 なる関数を発見!

 

 この関数はマニュアル↓

 

http://php.net/manual/ja/function.htmlspecialchars-decode.php

 

にあるとおり、PHP 5 >= 5.1.0 で使える関数。

業者の開発環境はPHP5だが、当時「本番環境」はPHP4だったので、この関数呼び出しがエラーを起こしていたわけだ。

 

ではなぜ「日本語版」は動いていたのか。

 

※該当箇所を探してみると

htmlspecialchars_decode_fake();

なる自作関数が呼ばれていた。

 

 "_fake" 

 

 いや、fakeでも何でもいいのだが・・。

 これで「鋭意調査中」「原因不明」と繰り返すような業者に依頼していることが怖かった。