2014-06-06 63 views
0

這是我的PHP文件(實際的文件是比較複雜的,但我發現它失敗,即使是最簡單的代碼):無效的JSON()

<?php 
$salida = array(1,2,3,4,5); 
echo json_encode($salida); 
?> 

這是我得到的迴應:

[1,2,3,4,5] 

似乎是有效的,但事實並非如此。當我將它傳遞給jQuery.parseJSON()函數時,我的AJAX應用程序顯示'Unexpected token'。當我將它粘貼到JSONLint網頁時,返回相同的錯誤。

我注意到,如果我刪除第一個字符並再次鍵入,JSON就會生效。

這讓我開始思考,我檢查了JSON字符串以十六進制編輯器,我發現奇怪的字符在文件的開頭:

[1,2,3,4,5] 

這很奇怪,因爲該功能能正常工作,直到前幾天,並且該文件尚未修改。

<?php>標籤位於文件的開頭,它的編碼爲utf-8。

我在Windows 8.1上使用XAMPP 1.8.3。我重新安裝了XAMPP,以防萬一出現問題,但json_enconde()函數仍然無法正常工作。

任何人都知道如何解決這個問題?

感謝

回答

2

您需要保存的PHP文件(所有文件和它包括)沒有UTF8 BOM(字節順序標記)。如何做到這一點取決於你的編輯器。請注意,使用UTF8本身是非常好的,並鼓勵。沒有BOM。

+0

事實上,我的文件編碼爲UTF-8,沒有BOM,但我注意到用require_once()調用的一個依賴文件被編碼爲帶有BOM的UTF8。 – Davalom