将TAB转换为CSV格式

时间:2013-06-14 18:03:20

标签: php csv converter export-to-csv

我目前正在使用以下代码打开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中,我想我可以弄清楚其余部分。

2 个答案:

答案 0 :(得分: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);
}

答案 1 :(得分: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);
}

?>

我没有测试过这个