0

我目前正在使用以下代码打开一个 TAB 分隔文件...

if (($handle = fopen($filetxt, "r")) !== FALSE) {

while (($data = fgetcsv($handle, 0, "\t")) !== FALSE) {
    // var_dump($data);
    $num = count($data);
    echo "<br>\n";
    $row++;
    for ($c=0; $c < $num; $c++) {
        echo $data[$c] . "<br />\n";
    }
}
fclose($handle);
}

现在我只是想弄清楚如何使用 fputcsv 将数据放入 CSV。一个很好的例子——现在我只是想把标题变成一个 CSV,然后我可以从那里开始。

现在的数据(正在回显)看起来像这样......

part_number
aaia_part_term_id
short_description
bullet_points
list_price
jobber_price
base_price
epc_code
length
width
height
weight
image_name

如果我能弄清楚如何仅将标头回显到 CSV 中,我想我可以弄清楚其余的。

4

2 回答 2

0

fopen 只为您提供文件的句柄。csv 文件的格式依赖于每一行,您读取文件的方式一次使用所有内容,请尝试:

<?PHP

if($handle = fopen($filetext, "r") !== FALSE){

 while (!feof($handle)) {
  $line_of_text = fgets($handle);
  foreach( fgetcsv($line_of_text, 0, "\t") as $csv_item)
   print $csv_item."," ;
  print "<br>";
 }

 fclose($handle);
}

?>

我没有测试过这个

于 2013-06-14T18:18:43.893 回答
0

由于 CSV 文件只是一个逗号分隔的数据文件,因此仅逐行读取当前制表符分隔的文件并用逗号替换制表符可能更简单

if (($handle = @fopen($filetxt, "r")) !== false) {
  while (($line = fgets($handle, 0)) !== false) {
    $csv_line = str_replace("\t", ",", $line);
    // write $csv_line to your csv file
  }
  fclose($handle);
}
于 2013-06-14T18:17:46.357 回答