首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 4 彩蛋:隱藏在 phpinfo() 的趣味圖示

     編輯:PHP 綜合知識

發現彩蛋

在 PHP 4 時代,開發團隊在原始碼 logos.h 中內建一張 GIF 圖片,編碼為位元組陣列 php_egg_logo[]。當呼叫 phpinfo() 並帶入特定查詢字串 ?=PHPE9568F36-D428-11d2-A769-00AA001ACF42 時,頁面會顯示一位「嘴含兩根菸的胖子」動畫,而非標準 PHP Logo。

觸發方式

<?php
// env.php
phpinfo();
?>

瀏覽器存取:

https://your-domain/env.php?=PHPE9568F36-D428-11d2-A769-00AA001ACF42

原始碼中的圖片資料

logos.h 定義:

unsigned char php_egg_logo[] = {
    71, 73, 70, 56, 57, 97, 130, 0, 67, 0,
    213, 255, 0, 0, 0, 0, 152, 138, 142, 104,
    95, 105, 89, 86, 93, 160, 151, 174, 102, 101,
    136, 164, 163, 205, 174, 173, 213, 102, 102, 153,
    99, 99, 149, 102, 102, 152, 96, 96, 143, 90,
    90, 134, 82, 82, 115, 87, 87, 121, 80, 80,
    108, 74, 74, 100, 110, 110, 147, 95, 95, 127,
    149, 149, 198, 118, 118, 157, 67, 67, 89, 144,
    144, 191, 128, 128, 169, 137, 137, 180, 155, 155,
    197, 186, 186, 227, 209, 209, 247, 242, 242, 254,
    // ... 共數百個位元組,此處省略 ...
    0, 59, 0
};

前三個位元組 71, 73, 70 即 ASCII "GIF",確認為 GIF89a 格式。

技術背景

  • PHP 4 時期:Zend Engine 1.0,約 2000~2004 年主流。
  • 彩蛋機制:phpinfo() 解析查詢字串,若匹配特定 GUID,改輸出 php_egg_logo 而非標準 Logo。
  • GUID 來源:PHPE9568F36-D428-11d2-A769-00AA001ACF42 為開發團隊內部定義的 Easter Egg 金鑰。

後續版本變化

  • PHP 5.0 仍保留此彩蛋。
  • PHP 5.3 起逐漸移除,現代 PHP(7.x/8.x)phpinfo() 不再回應此參數,標準 Logo 改為 SVG 向量圖。

其他知名 PHP 彩蛋

版本觸發方式內容
PHP 4/5?=PHPE9568F34-D428-11d2-A769-00AA001ACF42Zend Engine Logo(獅子)
PHP 5.3+?=PHPE9568F35-D428-11d2-A769-00AA001ACF42PHP Logo(大象)
所有版本?=PHPE9568F36-D428-11d2-A769-00AA001ACF42胖子雙菸(本文主角)

安全性考量

生產環境應關閉 expose_php = Off(php.ini),並限制 phpinfo() 存取權限,避免洩露版本、模組、環境變數等敏感資訊。彩蛋本身無害,但可作為偵測 PHP 版本的指標之一。

結語

PHP 彩蛋見證了開源社群的幽默與創意。雖然現代版本已移除,但這段歷史提醒我們:軟體不僅是工程產物,也承載著開發者的個性與文化。下次看到 phpinfo(),不妨試試舊版參數,或許能喚起一段懷舊時光。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved