如何使用PHP生成JSON数据?

2022-08-30 06:51:03
CREATE TABLE Posts
{
id INT PRIMARY KEY AUTO_INCREMENT,
title VARCHAR(200),
url VARCHAR(200)
}

json.php 代码

<?php
$sql=mysql_query("select * from Posts limit 20");
echo '{"posts": [';
while($row=mysql_fetch_array($sql))
{
$title=$row['title'];
$url=$row['url'];
echo '

{

"title":"'.$title.'",

"url":"'.$url.'"

},'; 
}
echo ']}';

?>

我必须生成文件。results.json


答案 1

要在PHP中生成JSON,您只需要一个函数,json_encode())。

使用数据库时,需要先将所有行放入数组中。下面是 mysqli 的示例代码

$sql="select * from Posts limit 20"; 
$result = $db->query($sql);
$posts = $result->fetch_all(MYSQLI_ASSOC);

然后你可以直接使用此数组,也可以使其成为另一个数组的一部分:

echo json_encode($posts);
// or
$response = json_encode([
    'posts' => $posts,
]);

如果您需要将其保存在文件中,则只需使用file_put_contents()

file_put_contents('myfile.json', json_encode($posts));

答案 2

使用这个:

$json_data = json_encode($posts);
file_put_contents('myfile.json', $json_data);

您可以在运行脚本之前创建 myfile.json。但是,如果您具有完全的sudo权限(读/写权限(对于Mac上的您),则不是强制性的。

下面是一个工作示例:

<?php 
  
// data stored in an array called posts
$posts = Array (
    "0" => Array (
        "id" => "01",
        "title" => "Hello",
    ),
    "1" => Array (
        "id" => "02",
        "title" => "Yoyo",
    ),
    "2" => Array (
        "id" => "03",
        "title" => "I like Apples",
    )
);
// encode array to json
$json = json_encode($posts);
$bytes = file_put_contents("myfile.json", $json); //generate json file
echo "Here is the myfile data $bytes.";
?>

推荐