使用PHP将JSON导出到CSV
我们正在使用的营销应用程序为我提供了以下JSON代码,我希望将其导出为CSV文件使用PHP将JSON导出到CSV,php,json,csv,Php,Json,Csv,我们正在使用的营销应用程序为我提供了以下JSON代码,我希望将其导出为CSV文件 {"FirstName":"data","Surname":"data","E-mail Address":"data","PurchasedGoods":"data","Address1":"data","Address2":"data","City":"data","Postcode":"data","Company":"data","MiddleName":"data","Country":"data","T
{"FirstName":"data","Surname":"data","E-mail Address":"data","PurchasedGoods":"data","Address1":"data","Address2":"data","City":"data","Postcode":"data","Company":"data","MiddleName":"data","Country":"data","Title":"data"}
JSON代码中将有许多记录
请帮助我使用PHP代码将上述JSON代码/记录导出到CSV文件
我目前正在使用以下代码:
<?php
$request = file_get_contents('php://input');
$req_dump = print_r($request, TRUE);
$fp = fopen('request.log', 'a');
$fp = fopen('file.csv', 'w');
fwrite($fp, $req_dump);
fclose($fp);
?>
我还添加了以下代码,但没有乐趣:
#!/usr/bin/php
<?php
if (empty($argv[1])) die("The json file name or URL is missed\n");
$jsonFilename = $argv[1];
$json = file_get_contents($jsonFilename);
$array = json_decode($json, true);
$f = fopen('php://output', 'w');
$firstLineKeys = false;
foreach ($array as $line)
{
if (empty($firstLineKeys))
{
$firstLineKeys = array_keys($line);
fputcsv($f, $firstLineKeys);
$firstLineKeys = array_flip($firstLineKeys);
}
// Using array_merge is important to maintain the order of keys acording to the first element
fputcsv($f, array_merge($firstLineKeys, $line));
}
?>
#/usr/bin/php
查看如何解码json数据
对于CSV生成,您可以“手动”生成它(这只是在文件中写入),但使用一些现有的库肯定更好,比如由杰出软件包联盟(League of Excellant Packages)提出的库(多好的名称啊!:):)
希望能有所帮助。@JonStirling我添加了我正在使用的代码。我试过两种不同的代码。好的,下一个问题。实际发生了什么,你期望发生什么。顺便说一句,我不知道你到底想用这个
数组\u merge
做什么。对不起@JonStirling我从一个开发人员那里得到了这个代码,他让我做一些更改,但我做不到,所以这并不能解决问题。