2014-04-06 66 views
0

我写一个脚本下载一个CSV,PHP逗号分隔字符串数组导出为CSV

我用来发送数据服务器像下面的表格,

(隐藏字段的值有域名,namerserver1 ,namerserver2,namerserver3,namerserver4)一些有域名,而不是具有纳秒数据

<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请,我感谢您的帮助。谢谢

+0

[分解](http://www.php.net/manual/en/function.explode.php)on','转换为数组,然后使用PHP的[fputcsv()](http:// www .php.net/manual/en/function.fputcsv.php)带有“\ t”分隔符的函数 –

+0

谢谢你是否有任何示例代码 –

+0

有在PHP文档中使用fputcsv()的例子 –

回答

1

你的论点,以便将爆炸()函数是错误的

而且'\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); 
+0

谢谢,我发现它。 ,不需要\ t,当我把它不分隔列:) –

1

你应该尝试制表作为分隔

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

我用下面的代码,但创建的csv文件没有数据 $ fp = fopen(“nsdata.csv”,“w”); $ row = array('Domain','NS1','NS2','NS3','NS4'); fputcsv($ fp,$ row); foreach($ _ POST ['nsv'] as $ val){ \t fputcsv($ fp,$ val,chr(9)); } –

+0

也尝试使用爆炸,它只显示标题 $ fp = fopen(“nsdata。($ fp,$ row); foreach($ _ POST,$ sp,$ ws); $ row = array('Domain','NS1','NS2','NS3','NS4'); fputcsv [ 'NSV']为$ VAL){ \t $ AR =爆炸($缬氨酸, ''); \t fputcsv($ FP,$ AR, '\吨'); } FCLOSE($ FP); –

+0

@IreshaKumari请不要在代码中留言作为评论。这是不可读的。编辑你的问题。此外,任何澄清应该在/下面的问题,而不是下面的答案之一。 –