2011-08-09 42 views
1

我試圖做一個頁面,如果頁面正在被用戶請求時返回一個文件,並在代碼請求時返回api響應。它工作正常,但谷歌瀏覽器(和IE)呈現用戶頁面,如果它是:include_once工作不正常

<head></head> 
<body><title>BLAH</title> 
<h1>Bloo bloo blah</h1></body> 

即使查看源代碼的回報:

<head><title>BLAH</title></head> 
<body><h1>Bloo bloo blah</h1></body> 

但是當我去的網頁正在被納入,它顯示不正確。

PHP代碼:

<?php 
if ($_GET['mode']) { 
    echo 'server response'; 
} 
else { 
    include_once('main.php'); 
} 
?> 

main.php代碼:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head><title>BLAH</title></head> 
<body><h1>Bloo bloo blah</h1></body> 
</html> 

任何幫助,將不勝感激。 我在Windows 7計算機上運行的PHP 5.3.5使用IIS 6.1。

+1

請提供更多的細節,這是什麼'main.php'呢? – ajreal

+1

我們需要更多的[輸入](http://www.youtube.com/watch?v=AbkbU32X5dI) – cwallenpoole

+0

@ajreal - main.php基本上什麼也不做 - 目前** ** – comp500

回答

1

請嘗試以下方法:

如果該鍵mode值在使用它之前設置而不是

if ($_GET['mode']) { 

檢查:

if (isset($_GET['mode']) && $_GET['mode']) { 

這只是一個預防措施的情況下,PHP由於警告或通知產生輸出(但不一定),哪些可以那麼影響輸出。

除此之外,你應該實際檢查服務器返回的是什麼,而不是瀏覽器中的視圖源給你什麼。安裝cUrl命令行工具(Download),然後在shell中運行:

curl http://myurl 

它將輸出HTML作爲您的服務器返回。在您的問題得到進一步分析之前,實際需要這些信息。

編輯:問題的原因是main.php與BOM一起保存。從文件中刪除BOM,你很好。

相關:

+0

謝謝,現在安裝curl。 – comp500

+0

你能幫我安裝捲曲嗎? – comp500

+0

我安裝了wget代替 – comp500