top
Loading...
PHP的content-type=text/html問題
以下文字是由于小弟看到最近論壇上有關此類問題很多而寫,還請各位多指教!!!

在本站的常見問題中已經有了怎樣去掉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書籍的作者回答你的問題,多棒阿!!!

歡迎各位指教!
Patrick

北斗有巢氏 有巢氏北斗