我尝试使用Mailchimp的Export API生成给定列表中所有成员的CSV文件。这里' documentation以及它们提供的示例PHP代码:
$apikey = 'YOUR_API_KEY';
$list_id = 'YOUR_LIST_ID';
$chunk_size = 4096; //in bytes
$url = 'http://us1.api.mailchimp.com/export/1.0/list?apikey='.$apikey.'&id='.$list_id;
/** a more robust client can be built using fsockopen **/
$handle = @fopen($url,'r');
if (!$handle) {
echo "failed to access url\n";
} else {
$i = 0;
$header = array();
while (!feof($handle)) {
$buffer = fgets($handle, $chunk_size);
if (trim($buffer)!=''){
$obj = json_decode($buffer);
if ($i==0){
//store the header row
$header = $obj;
} else {
//echo, write to a file, queue a job, etc.
echo $header[0].': '.$obj[0]."\n";
}
$i++;
}
}
fclose($handle);
}
这对我来说效果很好,当我运行这个文件时,我最终得到了这种格式的一堆数据:
Email Address: xdf@example.com
Email Address: bob@example.com
Email Address: gerry@example.io
我想要做的是将其转换为CSV(传递到我服务器上的某个位置),而不是echo
数据。是否有可以使用的库或简单的语法/ snippit来实现这一目标?
答案 0 :(得分:1)
这些对我而言。从现在开始,您可能希望实际阅读一些文档,而不是复制和粘贴您的生活方式。其他人不会像我一样好。这是php网站上的文件系统功能列表。 http://php.net/manual/en/ref.filesystem.php将文件输出转换为所需的csv格式是留给读者的一项练习。
HttpSessionState session = HttpContext.Current.Session;
答案 1 :(得分:1)
如果格式简单如下:
Email Address, xdf@example.com
Email Address, bob@example.com
Email Address, gerry@example.io
是你所追求的,然后你可以做到:
$handle = @fopen($url,'r');
$csvOutput = "";
if (!$handle) {
echo "failed to access url\n";
} else {
$i = 0;
$header = array();
while (!feof($handle)) {
$buffer = fgets($handle, $chunk_size);
if (trim($buffer)!=''){
$obj = json_decode($buffer);
if ($i==0){
//store the header row
$header = $obj;
} else {
//echo, write to a file, queue a job, etc.
echo $header[0].', '.$obj[0]."\n";
$csvOutput .= $header[0].', '.$obj[0]."\n";
}
$i++;
}
}
fclose($handle);
}
$filename = "data".date("m.d.y").".csv";
file_put_contents($filename, $csvOutput);

变量$ csvOutput包含CSV格式字符串。
答案 2 :(得分:-1)
没有冒犯,但StackOverflow并不意味着让人们代码。
大概有一个dozen libraries for CSV,但您只需更改输出以匹配使用数组和implode数组的CSV格式。
另外,请查看here。