php.net のレアなロゴ画像を鑑賞する

No Photo

台風が近づくと、年を重ねても多少わくわく感があるtanakaです。

今日は、php.net で爆走する象が出現した、という未確認情報を検証したいと思います。 …というのは冗談で、php.netの左上には斜体フォントでphpのロゴがありますが、このロゴは変わることがあります。社内でちょっと話題になったので調べてみました。

走る象が表示される?

PHPのウェブサイトのソースを読んでみると、ロゴの部分は以下のようになっています。

<img src="/images/logo.php" width="48" height="24" alt="php">

画像リソースをPHPスクリプトで動的に返しているようです。こちらのコードはphp/web-php - GitHub で管理されているようで、スクリプトの内容をweb-php/images/logo.php at master · php/web-phpで確認することができます。 スクリプトを読むと、通常表示されるロゴを直接読み込むURLは http://www.php.net/images/logos/php-logo@2x.png のようです。

次に象が表示される件ですが、49行目あたりに"/logos/elephpant-running-78x48.gif" というパスが記述されています。URLに直すと http://www.php.net/images/logos/elephpant-running-78x48.gif となります。この勢いよく走っている象はPHPのマスコット・elePHPantです。象が表示される条件もコードに記述されていますが、

  • ($_SERVER["REQUEST_TIME"] % 64) == 0 が true

のときに表示されるロゴ候補配列に含まれるようになります。最終的に配列はシャッフルされてから取り出されるので、$_SERVER["REQUEST_TIME"]が条件に一致しても必ずしも象が表示されるとは限りません。

( isset($_GET["refresh"]) も象の表示条件に関わりますが、通常このクエリを指定する方法がわかりませんでした。)

さて、何回かリロードしても象が表示されない時は以下のコードをアドレスバーで実行すると再現できます。

javascript:jQuery('a.brand img').attr('src', '/images/logos/elephpant-running-78x48.gif');

※Chromeではコードをコピー&ペーストすると javascript:の部分がカットされてしまうので再入力する必要があります

PHPの過去バージョンのロゴが表示されることもあります

elePHPantよりさらに低い頻度ですが別の画像が表示される可能性もあります。そのときは https://github.com/php/web-php/tree/master/images/logos/oldschool にある画像が候補配列に含まれます。私はelePHPantより先にPHP/FIのロゴを見たことがあります。

ロゴ差し替えコード例

javascript:jQuery('a.brand img').attr('src', '/images/logos/oldschool/php1.gif');

まとめ

php.net で走る象や過去バージョンのロゴを見つけたらラッキー?です。

参考文献

  • このエントリーをはてなブックマークに追加

この記事を読んだ人にオススメ