PHP CSV Yapımı - Satırbaşı çalışmaz

2 Cevap php

Oldukça basit bir sorun gibi görünüyor ama işe alınamıyor. Ben (çalışıyor) bir csv dosya indirmek için kullanıcı alıyorum.

Temelde ben işe satırbaşını alınamıyor.

header("Content-type: text/x-csv");
header("Content-Disposition: attachment; filename=search_results.csv");
echo '"Name","Age"\n"Chuck Norris","70"';
exit;

Result : İsim \ n "Chuck Norris" 70

Denenmiş: />

echo '"Name","Age",\n,"Chuck Norris","70"';

Result : Name     Age    \n    Chuck Norris    70

And

echo '"Name","Age",\n\r,"Chuck Norris","70"';

Result : Name     Age    \n\r    Chuck Norris    70

Yanlış gidiyor biliyor musun?

2 Cevap

CSV ile ilgili olarak, Brenton tarafından cevaba bakınız. "Neden işe yaramadı" cevap olarak:

Evet, / n ve benzeri yalnızca çift tırnak çalışmak :)

örneğin

echo '"Name","Age"' . "\n" . '"Chuck Norris","70"';

ya da (bu olacak olan korkunç görünüyorsun)

echo "\"Name\",\"Age\"\n\"Chuck norris\",\"79\"";

ancak okunabilirlik uğruna:

 $nl = "\n";
   echo '"Name","Age"' . $nl .  '"Chuck Norris","70"';

Bir alternatif olarak, belki de daha güçlü bir çözelti de olabilir. PHP, yerleşik bir işleve sahiptir (yok değil her zaman). fputcsv tarayıcıya çıktı çalışıyorsanız, size standart çıkışı (stdout) akışı yerine bir dosya işaretçisi kullanabilirsiniz, bir akıma doğru kaçtı csv satır yazacağım.

örn.

$list = array (
  array('Name', 'Age'),
  array('Chuck Norris', 79)
);

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