PHP將資料庫查詢內容轉換為JSON格式且顯示中文
阿新 • • 發佈:2018-11-09
最近寫android,開始寫伺服器了。最終伺服器的語言就先定為PHP,因為以前寫過一陣子網頁,所以就先用PHP試試水。
那麼首先為了實現android前端與伺服器互動,那麼我們伺服器傳輸的資料就要先變為JSON格式。
那麼如何將資料庫中的內容查詢出來,並且使其轉變為JSON格式呢?程式碼如下:
if(isset($_GET["userid"])){ $userid=$_GET["userid"]; echo $userid; $sql="select * from user where userid='$userid'"; } $result=mysqli_query($conn,$sql); if (!$result) { printf("Error: %s\n", mysqli_error($conn)); exit(); } $jarr = array(); while ($rows=mysqli_fetch_array($result,MYSQL_ASSOC)){ $count=count($rows);//不能在迴圈語句中,由於每次刪除 row陣列長度都減小 for($i=0;$i<$count;$i++){ unset($rows[$i]);//刪除冗餘資料 } array_push($jarr,$rows); } print_r($jarr);//檢視陣列 echo "<br/>"; echo '<hr>'; echo '編碼後的json字串:'; echo $str=json_encode($jarr,JSON_UNESCAPED_UNICODE);//將陣列進行json編碼 echo '<br>'; $arr=json_decode($str);//再進行json解碼 echo '解碼後的陣列:'; print_r($arr);//列印解碼後的陣列,資料儲存在物件陣列中 mysqli_close($conn);
其實原理很簡單,就是將資料庫中的資料儲存到一個數組之後,再對這個陣列進行編碼。但是,我們需要注意的是,如果資料庫中有中文,而對其進行JSON編碼之後,仍然想使其變為中文。我們需要在 json_encode()中加上一個選項, JSON_UNESCAPED_UNICODE。也就是避免對中文用utf-8編碼。上面的程式碼已經實現。