Ⅰ php從mysql中取出多組數據 如何加入數組中並轉成JSON數組
首先定義一個數組,然後遍歷數據表,把相應的數據放到數組中,最後通過json_encode()轉化數組
json_encode() 函數的功能是將數值轉換成json數據存儲格式。
例如:
<?php
//定義一個數組,用於保存讀取到的數據
$array = array();
$query = mysql_query("select * from table");
//遍歷數據表
while($rows = mysql_fetch_array($query)){
//可以直接把讀取到的數據賦值給數組或者通過欄位名的形式賦值也可以
$array[] = $rows;
$array[$rows['id']] = $rows;
}
print_r($array);
//最後通過json_encode()轉化數組
echo json_encode($array);
?>
Ⅱ php怎麼將數組轉換為json而不會使中文出現亂碼
如果頁面都是utf-8編碼,一般不會出現亂碼,如果不是utf-8,先轉為utf-8。
如果想要轉換的json中的中文可讀的話,在json_encode之前,把所有數組內所有內容都用urlencode()處理一下,然用json_encode()轉換成json字元串,最後再用urldecode()將編碼過的中文轉回來。
Ⅲ 在PHP中怎麼接收post過來的JSON數據
在PHP中接收POST過來的JSON數據,通常有兩種方式。一種是直接使用file_get_contents函數獲取原始數據,然後利用json_decode將JSON字元串轉換為PHP數組或對象。例如:file_get_contents('php://input');獲取數據後,使用json_decode(file_get_contents('php://input'), true)進行解碼。另一種方式是通過$_POST超全局變數接收,這種方式需要在發送請求時設置Content-Type為application/json。例如:$_POST['data'],但這種方式並不推薦,因為$_POST通常用於接收表單數據。
下面是一個完整的示例,展示如何在PHP中處理POST過來的JSON數據:
首先,假設前端使用JavaScript發送JSON數據,代碼如下:
JavaScript代碼示例:
function sendData() {
var data = {'zhangsan':'lisi', 'age':18};
var xhr = new XMLHttpRequest();
xhr.open('POST', '/path/to/php/script', true);
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.onreadystatechange = function () {
if (xhr.readyState === 4 && xhr.status === 200) {
console.log(xhr.responseText);
}
};
xhr.send(JSON.stringify(data));
}
然後在PHP中接收並處理這些數據:
PHP代碼示例:
<?php
$jsonData = file_get_contents('php://input');
$data = json_decode($jsonData, true);
echo "接收到的數據:";
print_r($data);
?>
上面的PHP代碼首先使用file_get_contents('php://input')獲取原始數據,然後通過json_decode將其轉換為PHP數組。接著,使用print_r輸出數據內容。
這種方式不僅適用於POST請求,也適用於其他HTTP方法。通過這種方式,PHP能夠靈活地處理不同來源和格式的數據,增強應用的通用性和可維護性。