2013-03-20 94 views
0

我需要为SocialMention.com查询“Colorado Springs”和“District 11”,并将数据提取回CSV文件。我是一位老程序员,但是对PHP和JSON是新手。这里是简单的PHP代码:如何在PHP中将JSON解析为CSV用于社交API

<?php 
$curl = curl_init('http://api.socialmention.com/search?q=%22colorado+springs%22+%22district+11%22&f=json&src[]=twitter&sentiment=true&meta=info'); 
$result = curl_exec($curl); 
echo $result; 
?> 

如何解析$ result并将其存储在CSV文件中?我一直在研究这个为期6天,并尝试过每一个我找不到的例子。在下面的例子中,我不断收到“foreach中的无效参数”错误。

回答

0

你的问题很广泛,因为你没有真正说出你想如何解析$result,但你甚至没有得到$result,因为curl_exec实际上会打印出它的内容。相反,你可以设置curl_setopt($curl, CURLOPT_RETURNTRANSFER, true),或者你可能只用$result = file_get_contents($url);

无论如何,你可以从JSON通过$data = json_decode($result, true)结果变成可用的PHP数据结构。第二个参数强制关联数组,这可能更适合您的目的。

然后,你可以写CSV文件:

$fh = fopen('csvfile', 'w'); 
foreach ($result['items'] as $items) { 
    fputcsv($fh, $items); 
} 
0

ü可以参考两个环节太

1. Parsing JSON file with PHP

2. php writing to csv from an array

$json_a=json_decode($string,true); //decodes json 

//writes to csv 
$fp = fopen('file.csv', 'w'); 

    for ($i = 0; $i < count($json_a); $i++) { 
     $fields = //json object feids here 
     fputcsv($fp, $fields); 
    } 

    fclose($fp);