PHP打开csv并将数据保存到新的csv

PHP打开csv并将数据保存到新的csv,php,csv,save,Php,Csv,Save,我需要替换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 = ['

我需要替换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);  
$row=0;
if($handle=fopen(“original.csv”,“r”)!==FALSE){
while(($data=fgetcsv($handle,20000,“;”)!==FALSE){
$num=计数($data);
$cat_alt=[‘冷’、‘热’、……等等……];
$cat_neu=['kalt','heiß',…und so weiter…];
echo“$num Felder在Zeile$行:

\n”; $row++; 对于($c=0;$c<$num;$c++){ $output=str_replace($cat_alt,$cat_neu,$data[$c]。“
\n”); echo$输出; } } } $fp=fopen('changed.csv','w'); foreach($行作为$行){ 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);
    
    $fp=fopen('changed.csv','w');
    if($handle=fopen(“original.csv”,“r”)!==FALSE){
    while(($data=fgetcsv($handle,20000,“;”)!==FALSE){
    $num=计数($data);
    $cat_alt=[‘冷’、‘热’、……等等……];
    $cat_neu=['kalt','heiß',…und so weiter…];
    echo“$num Felder在Zeile$行:

    \n”; $row++; 对于($c=0;$c<$num;$c++){ FPUT($fp,str_替换($cat_alt,$cat_neu,$data[$c]。“
    \n”); } } } 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);
    
    $fp=fopen('changed.csv','w');
    if($handle=fopen(“original.csv”,“r”)!==FALSE){
    while(($data=fgetcsv($handle,20000,“;”)!==FALSE){
    $num=计数($data);
    $cat_alt=[‘冷’、‘热’、……等等……];
    $cat_neu=['kalt','heiß',…und so weiter…];
    echo“$num Felder在Zeile$行:

    \n”; $row++; 对于($c=0;$c<$num;$c++){ FPUT($fp,str_替换($cat_alt,$cat_neu,$data[$c]。“
    \n”); } } } fclose($fp);

  • 你有什么错误?什么不起作用?保存的文件是什么样子的?除了原始csv的内容外,我没有收到任何错误。但它不会将更改的内容保存到“changed.csv”文件。该文件是在服务器上创建的,但它是空的。您会遇到什么错误?什么不起作用?保存的文件是什么样子的?除了原始csv的内容外,我没有收到任何错误。但它不会将更改的内容保存到“changed.csv”文件。该文件是在服务器上创建的,但它是空的。