PHP 打开 csv 并将数据保存到新的 csv
PHP open csv and save data to new csv
我需要替换 csv 中的大量数据,在更改所有内容后我希望将其保存到新的 csv 文件中。
我可以使用 php.net 中的代码读取 csv,但无法保存新文件。我有这个
$row = 0;
if (($handle = fopen("original.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 20000, ";")) !== FALSE) {
$num = count($data);
$cat_alt = ['cold', 'hot', ... and so on...];
$cat_neu = ['kalt', 'heiß', ...und so weiter...];
echo "<p> $num Felder in Zeile $row: <br /></p>\n";
$row++;
for ($c=0; $c < $num; $c++) {
$output = str_replace($cat_alt, $cat_neu, $data[$c] . "<br />\n");
echo $output;
}
}
}
$fp = fopen('changed.csv', 'w');
foreach ($row as $rows) {
fputcsv($fp, $rows);
}fclose($fp);
你有两个选择:
使用n个数组
$rows = []
...
$rows[] = str_replace($cat_alt, $cat_neu, $data[$c] . "\n");
...
fputcsv($fp, $rows);
预先打开输出文件并在处理数据时写入它
$fp = fopen('changed.csv', 'w');
if (($handle = fopen("original.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 20000, ";")) !== FALSE) {
$num = count($data);
$cat_alt = ['cold', 'hot', ... and so on...];
$cat_neu = ['kalt', 'heiß', ...und so weiter...];
echo "<p> $num Felder in Zeile $row: <br /></p>\n";
$row++;
for ($c=0; $c < $num; $c++) {
fputs($fp, str_replace($cat_alt, $cat_neu, $data[$c] . "<br />\n"));
}
}
}
fclose($fp);
我需要替换 csv 中的大量数据,在更改所有内容后我希望将其保存到新的 csv 文件中。 我可以使用 php.net 中的代码读取 csv,但无法保存新文件。我有这个
$row = 0;
if (($handle = fopen("original.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 20000, ";")) !== FALSE) {
$num = count($data);
$cat_alt = ['cold', 'hot', ... and so on...];
$cat_neu = ['kalt', 'heiß', ...und so weiter...];
echo "<p> $num Felder in Zeile $row: <br /></p>\n";
$row++;
for ($c=0; $c < $num; $c++) {
$output = str_replace($cat_alt, $cat_neu, $data[$c] . "<br />\n");
echo $output;
}
}
}
$fp = fopen('changed.csv', 'w');
foreach ($row as $rows) {
fputcsv($fp, $rows);
}fclose($fp);
你有两个选择:
使用n个数组
$rows = [] ... $rows[] = str_replace($cat_alt, $cat_neu, $data[$c] . "\n"); ... fputcsv($fp, $rows);
预先打开输出文件并在处理数据时写入它
$fp = fopen('changed.csv', 'w'); if (($handle = fopen("original.csv", "r")) !== FALSE) { while (($data = fgetcsv($handle, 20000, ";")) !== FALSE) { $num = count($data); $cat_alt = ['cold', 'hot', ... and so on...]; $cat_neu = ['kalt', 'heiß', ...und so weiter...]; echo "<p> $num Felder in Zeile $row: <br /></p>\n"; $row++; for ($c=0; $c < $num; $c++) { fputs($fp, str_replace($cat_alt, $cat_neu, $data[$c] . "<br />\n")); } } } fclose($fp);