fputcsv ile sütun üzerine yazılmasını

1 Cevap php

Ben, ayrıştırmak süreci ve ardından bir csv dosyasında sadece 1 belirli sütun üzerine yazmak istiyorum, ben ilk iki adımda iyiyim ama üçüncü ile ilgili sorunlar yaşıyorum. İşte ben bugüne kadar ne var:

<?php
$fh = fopen("data.csv", "r");
$row = 1;
while (($data = fgetcsv($fh, 1024, ",")) !== FALSE) {
$get = $data[2];
$uc = ucwords(strtoupper($get));
echo $uc;
}
?>

Bu güzel görüntüler, ben sadece geri orijinal sütuna yazılacak işlenmiş içerik gerekir. Ben bu fputcsv yapılır biliyorum, ama işe almak gibi olamaz:

$fp = fopen('data.csv', 'w');
fputcsv($fp, $uc, ",");
fclose($fp); 

Bu sadece tüm dosya mendil. Aynı şey fwrite kullanırken. Herhangi bir fikir?

Teşekkürler.

1 Cevap

Her iki işlev tüm dosya için, lines için değil çalışmak unutmayın.

Yani yazdığınızda yeniden oluşturmanız gerekir, gibi bir şey olacaktır:

<?php
$list = array (
   'aaa,bbb,ccc,dddd',
   '123,456,789',
   '"aaa","bbb"'
);

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

foreach ($list as $line) {
   fputcsv($fp, split(',', $line));
}

fclose($fp);
?>

Denenmemiş

<?php
$fh = fopen("data.csv", "r");
$row = 1;
$list=array();
while (($data = fgetcsv($fh, 1024, ",")) !== FALSE) {
    $data[2] = ucwords(strtoupper($data[2]));
    $list[]=$data; // collect lines
}
fclose($fh);

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

foreach ($list as $line) {
   fputcsv($fp, $line);
}

fclose($fp);
?>