發佈日期:
分類:
如何解決PHP檔案中‧不能執行網址重新定向(url redirect)問題
01. 今天有網友,指出某程式的程式碼有問題。症狀是主程式使用PHP中的header(‘location: index.php’);時,沒有反應。
02. 分析下,發現主程式只要include了2個另外的PHP檔案,再執行到header(‘location: index.php’);時,便沒有反應,但主程式內其他的程式碼,是可以執行到的。
03. 試一下把include的另外2個PHP檔案內容,一式一樣複製到主程式內,是可以執行到header(‘location: index.php’);這一行的。
04. 奇怪就在這裡,返回另外2個PHP檔案,內容是沒有問題的。直到想到編碼的問題,發現其中一個PHP檔案,編碼是UTF-8的。
05. 把它改回ANSI編碼,便解決問題。
06. 如檔案中涉及中文字串,編碼用ANSI,在顯示上可能會有問題,那可以把編碼改為UTF-8(NO BOM)。
07. 還有一個發現是,如果PHP.INI中,output_buffering的設定不是0的話(我的是4096),檔案用UTF-8編碼時,是不會一定出現以上所講的問題,但真正原因如何,還是有時間再研究吧。
發佈留言