2013-05-10 54 views
1

我正在使用get參數,因此用戶可以選擇XML輸出或Json。 根據他們的選擇,它會在同一頁面上運行json函數或xml函數。然而,儘管我的努力,即使代碼從未被告知在選擇json時輸入XML函數,它仍然運行標題(「Content-type:text/xml」);在XML函數中使用。它不運行任何其他事情。 問題是,當它試圖寫:PHP XML或Json網頁上的選擇

header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); 
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . "GMT"); 
header("Cache-Control: no-cache, must-revalidate"); 
header("Pragma: no-cache"); 
header("Content-type: application/json"); 

在JSON功能,它讓我的頭已經被改變(儘管我從來沒有執行的XML功能的錯誤 我不得不補救通過製作一個單獨的網頁,一個用於json和一個用於xml。但是,我希望他們獲得相同的URL並獲取選擇是否他們想要json或XML沒有任何錯誤。 有沒有更簡單的方法來做到這一點?

+0

我們可能需要查看完整的代碼,而不是隻調用'header'調用,但如果您嘗試在'header'方法調用之前嘗試輸出內容,通常會出現錯誤。例如。 JSON頭之前的xml內容 – fullybaked 2013-05-10 13:50:58

+0

您需要提供確切的錯誤消息。我以某種方式假定你告訴你的錯誤並不是真正的錯誤。請仔細檢查。 – hakre 2013-05-12 21:57:40

回答

0

檢查標題文件。您可能必須設置

header("Content-type: application/json", true); 
             #### 

以確保您的新內容類型標題替換可能已經設置的內容類型標題。 http://php.net/header

+0

我不認爲這是這種情況,但更清楚地說明了我想說的話。 (發送的標題不能再更改) – hakre 2013-05-12 22:00:07