2015-12-14 48 views
0

我正在基於PHP的localhost上創建一個web服務頁面,該頁面應該返回一個帶有3個隨機行的JSON數組。它似乎有效,但並非總是如此。有時我需要重新加載頁面2-3次才能得到它。 我的web服務將與Android一起工作,這只是爲了一些情況。 我的問題:爲了獲得我每次打開頁面所需的內容,我的代碼需要做什麼更改? 下面是代碼:如果它被適當地編碼以UTF8只能顯示每次訪問頁面時都不會返回值

<?php 

$host = "localhost"; 
$user = "root"; 
$password = ""; 
$db = "webappdb"; 

$sql = "SELECT word_en, word_da, article_da FROM words WHERE cate_id='1' ORDER BY RAND() LIMIT 3"; 


$con = mysqli_connect($host,$user,$password,$db); 

$result = mysqli_query($con,$sql); 

$response = array(); 

while($row = mysqli_fetch_array($result)) 
{ 
    array_push($response,array("word_en"=>$row[0],"word_da"=>$row[1],"article_da"=>$row[2])); 
} 

echo json_encode(array("server_response"=>$response)); 

mysqli_close($con); 

?> 
+0

您可以添加一個while循環,指出json響應是否爲空重複該循環,但是如果json響應爲1或更多則回顯json編碼數組。 – wuno

+0

它不起作用會發生什麼?與工作案例有什麼不同?你如何發現差異?有沒有相關的堆棧跟蹤? – ibizaman

+0

@ibizaman當它工作時我得到未格式化的JSON數組。正是我需要的。當它不工作時,我只得到一個空白的屏幕。它沒有錯誤。 – pc4

回答

1

JSON數據。如果您使用的數據可能包含像äö或ü這樣的特殊字符,那麼在將其發送到json_encode之前,您需要對輸出進行utf8_encode。不正確的編碼數據將導致空輸出,就像你所描述的。

+0

不錯的注意。我需要改變編碼爲utf8_encode到我的數據。我正在去做這件事。 – pc4

+0

你的評論是正確的。現在我將編碼更改爲utf8_encode,每次載入頁面時都會得到返回值。但我沒有得到丹麥字符,而是我得到這個「{」word_en「:」onion「,」word_da「:」l \ u00f8g「,」article_da「:」et「}」 – pc4

+0

我將此答案標記爲解決方案,因爲它告訴我什麼是問題。 – pc4

相關問題