2014-03-03 58 views
0

因此,我一直在试图创建一个简单的csv文件作为下面的代码,但没有正确创建csv文件。它包含了我的.php文件中的html文本。csv文件创建不正确

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
<title>CVS File</title> 
</head> 

<body> 

<table width="370" border="0" cellspacing="0" cellpadding="0"> 
    <form action="" method="post" enctype="multipart/form-data" name="form1" id="form1"> 
    <tr> 
     <td><h1> Ultracom </h1></td> 
     <td align="right" valign="middle"> 
      <input name="csv" type="file" id="csv" /> 
      <input type="submit" id="btnsubmit" name="btnsubmit" value="Submit" /> 
     </td> 
    </tr> 
    <tr> 
     <td><input type="submit" id="btnedit" name="btnedit" value="Edit" /></td> 
     <td></td> 
    </tr> 
    <tr> 
     <td><input type="submit" id="btnupdate" name="btnupdate" value="Update" /></td> 
     <td><input type="submit" id="btncancel" name="btncancel" value="Cancel" /></td> 
    </tr> 
    </form> 
</table> 

<?php 
if (isset($_POST['btnupdate'])) { 

header('Content-Type: text/csv; charset=utf-8'); 
header('Content-Disposition: attachment; filename=edited.csv'); 
$file = fopen("edited.csv","w"); 

$row = 2; 
$a = "a"; 
$b = "b"; 

for ($r=0; $r < $row; $r++) { 
    $rows[$r] = $a.",".$b; 
} 

foreach ($rows as $details) { 
    fputcsv($file,explode(',',$details)); 
} 

fclose($file); 
} 
?> 

我的代码有什么问题吗?我的代码看起来与其他代码大致相同,以创建我迄今在google上发现的csv文件。

+0

**正确创建**可能意味着很多东西 – 2014-03-03 20:42:15

+0

当我打开CSV文件,它包含: <!DOCTYPE HTML PUBLIC“ - // W3C // DTD XHTML 1.0 Transitional // EN“”http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd“> CVS文件

\t \t \t \t​​

Ultracom

\t \t
yuli

+0

没有在发布的代码中包含任何 – 2014-03-03 21:01:21

回答

1

什么是浪费?

for ($r=0; $r < $row; $r++) { 
    $rows[$r] = array($a, $b); // build an array of arrays... 
} 

foreach($rows as $details) { 
    fputcsv($file, $details); // use the array directly 
} 

有一个在建的数据不同的比特串,只是爆炸的是一个字符串回的数据不同的位以后零点。至于代码的其余部分,如果您打算将该csv下载到客户端浏览器,那么一旦构建完成后就不会实际输出csv。你需要

... 
fclose($file); 
readfile($file); // dump to client 
+0

感谢Marc的代码,但创建的csv文件仍然包含html代码而不是数组数据。 – yuli

+0

有没有**的方式,你的上面的代码可以生成这样的HTML。这是不可能的。 –

+0

在我发布的代码的顶部,我有创建一个表和一些按钮的HTML代码。编写在csv文件中的代码。 – yuli