Как сгенерировать файл .json с PHP?

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 ']}'; ?> в <?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 .

Вот пример кода:

 <?php $sql="select * from Posts limit 20"; $response = array(); $posts = array(); $result=mysql_query($sql); while($row=mysql_fetch_array($result)) { $title=$row['title']; $url=$row['url']; $posts[] = array('title'=> $title, 'url'=> $url); } $response['posts'] = $posts; $fp = fopen('results.json', 'w'); fwrite($fp, json_encode($response)); fclose($fp); ?> в <?php $sql="select * from Posts limit 20"; $response = array(); $posts = array(); $result=mysql_query($sql); while($row=mysql_fetch_array($result)) { $title=$row['title']; $url=$row['url']; $posts[] = array('title'=> $title, 'url'=> $url); } $response['posts'] = $posts; $fp = fopen('results.json', 'w'); fwrite($fp, json_encode($response)); fclose($fp); ?> 

Вставьте выбранные значения в массив вместо эха.

Используйте file_put_contents() и вставьте json_encode($rows) в этот файл, если $rows – ваши данные.

Использовать это:

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

работает на меня.

Используйте json-методы PHP для создания json, затем напишите его в файл с помощью fwrite .

Вы можете просто использовать функцию json_encode php и сохранить файл с функциями обработки файлов, такими как fopen и fwrite .

Если вы занимаетесь динамическими записями, лучше иметь 1 php-файл, который создает json-представление, а не создавать файл каждый раз.

my_json.php

 $array = array( 'title' => $title, 'url' => $url ); echo stripslashes(json_encode($array)); 

Затем в вашем скрипте задайте путь к файлу my_json.php

Здесь я упомянул простой syntex для создания json-файла и печатать значение массива внутри json- файла довольно красиво.

 $array = array('name' => $name,'id' => $id,'url' => $url); $fp = fopen('results.json', 'w'); fwrite($fp, json_encode($array, JSON_PRETTY_PRINT)); //here it will print the array pretty fclose($fp); 

Надеюсь, это сработает для вас ….

Во-первых, вам нужно его расшифровать:

 $jsonString = file_get_contents('jsonFile.json'); $data = json_decode($jsonString, true); 

Затем измените данные:

 $data[0]['activity_name'] = "TENNIS"; // or if you want to change all entries with activity_code "1" foreach ($data as $key => $entry) { if ($entry['activity_code'] == '1') { $data[$key]['activity_name'] = "TENNIS"; } } 

Затем перекодируйте его и сохраните в файле:

 $newJsonString = json_encode($data); file_put_contents('jsonFile.json', $newJsonString); 

копия