Iki sütun üzerinde bir CSV dosyasına yazın

2 Cevap php

Ben bir CSV dosyası oluşturmak için çalışıyorum. Ben bunu yaptım. Ben döngünün dışında ilk ve son hatları ile bir döngü içinde aşağıda koyduk.

$FileHandle = fopen('tech.csv', 'a+') or die("can't open file");
$stringa = $item." , ".$item2."\r\n";
fwrite($FileHandle, $stringa);
fclose($FileHandle);

Ancak, CSV dosyasında bu gibi açığa çıkıyor:

a
b

c
d

Aksine ben bunu istiyorum yolu daha:

a b
c d

Temel olarak, iki sütun yerine bir.

Ben yanlış ne yapıyorum?

2 Cevap

Eğer fgets() kullanarak bir dosya / akışından bu değerleri okur musun? Sonra firar linebreak dize parçasıdır. trim() satır aralığı kaldırmak için kullanın.

Ayrıca fonksiyonun ilginizi çekebilir fputcsv().

Ben gerçekten açmak ve bu dosya sistemi üzerinde gerçek bir yük koyar gibi her tekrarında dosyayı kapatın kalmayız. Bunun yerine, böyle bir şey yapabilirsiniz:

$csv = array();
foreach($myData as $row) {
    $csv[] = trim($row['item1']).','.trim($row['item2']);
}
file_put_contents('tech.csv', implode("\r\n", $csv), FILE_APPEND);

: Veya, fputcsv işlevini kullanabilirsiniz

$fp = fopen('tech.csv', 'a+');
foreach($myData as $row) {
    fputcsv($fp, array(trim($row['item1']), trim($row['item2']));
}    
fclose($fp);