PHP逗号分隔的字符串数组导出到csv

时间:2014-04-06 10:11:23

标签: php csv export-to-csv

我正在编写脚本来下载csv,

我用来发送数据服务器的表单,如下所示,

(隐藏字段的值有域名,namerserver1,namerserver2,namerserver3,namerserver4)有些域名没有ns数据

<form class="dmns2" method="post">
<input type="hidden" value="wiseowldating.co.uk,ns.nothard.net,ns2.nothard.net,ns3.nothard.net" name="nsv[]" />
<input type="hidden" value="willow.nothard.net.zz" name="nsv[]" />
<input type="hidden" value="welditz.com,ns.nothard.net,ns2.nothard.net,ns3.nothard.net," name="nsv[]" />
<input type="submit" id="btnsubmit"  value="CSV Export"/>
</form>

我在php上获得这些值,如下所示

if(isset($_POST['nsv'])){
foreach($_POST['nsv'] as $val){
    echo $val.'<br/>';
    }
exit(0);
}

记录正确显示如下

wiseowldating.co.uk,ns.nothard.net,ns2.nothard.net,ns3.nothard.net,
willow.nothard.net.zz,
welditz.com,ns.nothard.net,ns2.nothard.net,ns3.nothard.net,

但我希望将此输出导出为csv文件,格式为

Doman                 nameserver1    nameserver2     nameserver3     nameserver4 nameserver5
wiseowldating.co.uk   ns.nothard.net ns2.nothard.net ns3.nothard.net
willow.nothard.net.zz
welditz.com           ns.nothard.net ns2.nothard.net ns3.nothard.net

此代码正常运行,感谢您的帮助

$fp = fopen("nsdata.csv", "w");
$row=array('Domain','NS1','NS2','NS3','NS4');
fputcsv($fp, $row);
foreach($_POST['nsv'] as $val){
    $ar=explode(',',$val);
    fputcsv($fp,$ar);
}
fclose($fp);

任何人都可以帮我用PHP做这件事,我感谢你的帮助。谢谢

2 个答案:

答案 0 :(得分:1)

你应该尝试使用制表工具作为分隔符

fputcsv($fp, $foo, chr(9));  

答案 1 :(得分:1)

您对explode()函数的参数顺序错误

'\t'"\t"

不同

当你编写标题时,你也错过了"\t"

$fp = fopen("nsdata.csv", "w");
$row = array('Domain','NS1','NS2','NS3','NS4');
fputcsv($fp, $row, "\t");
foreach($_POST['nsv'] as $val){
    $ar=explode(',', $val);
    fputcsv($fp, $ar, "\t");
}
fclose($fp);