gpt4 book ai didi

PHP - 将制表符分隔的 TXT 文件转换为 CSV

转载 作者:行者123 更新时间:2023-12-02 06:30:35 25 4
gpt4 key购买 nike

我正在尝试将制表符分隔的 .txt 文件转换为 .csv 文件。

我能够使用 fgetcsv() 打开 txt 文件并使用以下代码获取每一行的数据:

$handle = fopen("fileurl.com", "r");
$row = 1;
if (($handle = fopen("fileurl.com", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, "\t")) !== FALSE) {
$num = count($data);
echo "<p> $num fields in line $row: <br /></p>\n";
$row++;

for ($c=0; $c < $num; $c++) {
echo $data[$c] . "<br />\n";
}

print_r($data);

}
fclose($handle);
}

现在我只需要从数据数组创建一个 csv 文件。我试过使用 fputcsv(),但没有成功。我试过这样的事情,但它创建的 csv 文件不正确,只有 1 行:

$fp = fopen('file.csv', 'w');

fputcsv($fp, $data, "\t");

fclose($fp);

如何从 $data 数组创建 .csv 文件的示例会很棒。我花了很多时间研究并试图弄清楚这一点,但一直无法让它发挥作用。

最佳答案

fputcsv() 一次只写一行。不是整个文件。您需要遍历 $data 以便将所有这些数据添加到您的 CSV 文件中。

$fp = fopen('file.csv', 'w');
foreach ($data as $line) {
fputcsv($fp, $line);
}
fclose($fp);

使用您的代码的完整示例:

$handle = fopen("fileurl.com", "r");
$lines = [];
if (($handle = fopen("fileurl.com", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, "\t")) !== FALSE) {
$lines[] = $data;
}
fclose($handle);
}
$fp = fopen('file.csv', 'w');
foreach ($lines as $line) {
fputcsv($fp, $line);
}
fclose($fp);

关于PHP - 将制表符分隔的 TXT 文件转换为 CSV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38810370/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com