以下文字是由於小弟看到最近論壇上有關此類問題很多而寫,還請各位多指教!!!
在本站的常見問題中已經有了怎樣去掉PHP4的一些多餘資訊的解答,但是嚴格來說這些資訊分成兩部分:一部分是指明PHP正在啟動並執行訊息,就是那些什麼X-POWERED-BY之類的;還有一部分是申明了該檔案的預設內容形式text/html。常見問題中的解答解決了前一部分問題(只要在相關行加註就OK了),但是論壇上更多的是關於後一部分的問題,我想就這個問題探討一下。
最開始要申明的是這樣的情況很可能出現在PHP以CGI方式啟動並執行時候,那麼小弟猜想大部分是WIN32平台出錯。
首先,一個最極端的解決方案就是,將所有擴充模組注釋掉,即在php.ini中將那些關於資料庫、圖形、MAIL等等擴充模組均申明不載入,部分php.ini檔案類似如下的形式:
;Windows Extensions
;extension=php_mysql.dll
;extension=php_nsmail.dll
;extension=php_calendar.dll
;extension=php_dbase.dll
;extension=php_filepro.dll
;extension=php_gd.dll
;extension=php_dbm.dll
;extension=php_mssql.dll
;extension=php_zlib.dll
;extension=php_filepro.dll
;extension=php_imap4r2.dll
;extension=php_ldap.dll
;extension=php_crypt.dll
;extension=php_msql2.dll
;extension=php_odbc.dll
那麼如果需要這些模組怎麼辦?小弟我的解決辦法只有在相應頁面動態載入,即dl()上去——以前小弟我還尋思這個函數有什麼用,現在,哈哈。。。如果各位有什麼好辦法,也可以張貼出來和大家分享!
其次一個解決的辦法是利用PHP的-q參數,按照PHP自己的說法是“Suppress HTTP Header Output”即禁止HTTP頭輸出。這樣倒是一了百了,但是你的任何header()和setcookie()都無用了——嘿嘿,你的PHP就基本報廢。所以那,這隻是一個齷鹺的辦法了。
好了,就說這麼多,應該可以解決CGI方式啟動並執行PHP的以上問題了。以上資料綜合了www.faqts.com的有關PHP部分——那個地方可以頂級的提問地盤了,經常有PHP/ZEND的撰寫者和一些PHP書籍的作者回答你的問題,多棒阿!!!