在windows下編程,當(dāng)使用session_start()方法的時(shí)候,有時(shí)會(huì)報(bào) session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /var/www/inpublisher/php1.php:1)這樣的錯(cuò)誤 說(shuō)是已經(jīng)有輸出,用編輯器打,前面明明什么都沒(méi)有,原來(lái)在使用AJAX的 時(shí)候,也出現(xiàn)過(guò)這種情況,后來(lái),把這個(gè)PHP文件放到linux中打開(kāi),會(huì)發(fā)現(xiàn),在文件的最前面,會(huì)出現(xiàn)“锘 ”這樣的一個(gè)字符(引號(hào)內(nèi)),把它去掉以后,再運(yùn)行,OK,運(yùn)行正常。后來(lái)在網(wǎng)上搜索一些文件,給的解釋是:UTF8文件的BOM(Byte Order Mark)標(biāo)志,在保存的時(shí)候會(huì)自動(dòng)存入!
不管它是干嘛的,現(xiàn)在的目的就是把它去掉,我總結(jié)的方法有下面三種: 1、 在Linux下打開(kāi),去掉后再保存 2、 用寫字板打開(kāi),把光標(biāo)放到最前后回車,然后再敲刪除,重新回到第一行,這樣最前面的那個(gè)字符就會(huì)去掉 3、 使用UltraEdit編輯器(很好用的一個(gè)編輯器,網(wǎng)上多的是,自己下去),打開(kāi)高級(jí)----配置----Unicode/utf-8 檢測(cè),把自動(dòng)檢測(cè)UTF-8文件,自動(dòng)檢測(cè)沒(méi)有BOM的Unicode文件等前面的勾全去掉,然后你再打開(kāi)那個(gè)文件,就會(huì)發(fā)覺(jué)“锘 ”這個(gè)字符出現(xiàn)了,刪除就OK了 笨方法:難道有很多頁(yè)面的時(shí)候,你也這樣做嗎? 在PHP頁(yè)面首部直接設(shè)置OB_START();,就可以解決! 解決辦法:====>有效果 修改php.ini中的session.auto_start = 0 為 session.auto_start = 1 output_buffering =改為on或者任何數(shù)字。 然后別忘記重新啟動(dòng)... |
|
來(lái)自: 風(fēng)子計(jì)算機(jī)筆記 > 《PHP》