Autor | Zpráva | ||
---|---|---|---|
notwist Profil |
#1 · Zasláno: 16. 2. 2016, 14:51:07
Zdravím,
prosím o radu. Exportuji data v PHP do Excelu a potřeboval bych občas odřádkovat, ale v rámci jedné buňky. V originálním textu v databázi mám <br>, ale to jen zapíše a nic to neudělá. Proto bych zaměnil <br> za nějaký znak, ale nevím za jaký. Můj kousek kódu: $fp=FOpen("$tmpfname","w"); for ($p = 0; $p < count($nadpisy); ++$p){ FPutS($fp,$nadpisy[$p] . "\t"); } FPutS($fp,"\n"); foreach ($pole as $radek_pole => $hodnoty) { $p=0; foreach ($hodnoty as $hodnota_pole) { FPutS($fp,str_replace("<br>", NĚČÍM_NAHRADIT, $hodnota_pole) . "\t"); $p++; } FPutS($fp,"\n"); } Fclose($fp); Děkuji za radu. |
||
juriad Profil |
#2 · Zasláno: 16. 2. 2016, 14:56:45
Ten formát, který používáš je CSV s tabulátorovými oddělovači. V CSV je zvykem textové položky ohraničit uvozovkami (a uvozovky uvnitř uescapovat), pak můžeš použít uvnitř textu obyčejné odřádkování pomocí
\n .
Podívej se na funkci fputcsv, která dělá skoro vše za tebe. |
||
juriad Profil |
$fp = fopen($tmpfname, "w"); fputcsv($fp, $nadpisy, "\t"); foreach ($pole as $hodnoty) { fputcsv($fp, str_replace("<br>", "\n", $hodnoty), "\t"); } fclose($fp); |
||
notwist Profil |
#4 · Zasláno: 16. 2. 2016, 15:42:27
juriad:
Děkuji. Zkusil jsem to a soubor se vytvoří, ale je prázdný. Dělám ještě něco špatně? $fp=FOpen("$tmpfname","w"); for ($p = 0; $p < count($nadpisy); ++$p){ fputcsv($fp,$nadpisy[$p] . "\t"); } foreach ($pole as $radek_pole => $hodnoty) { $p=0; foreach ($hodnoty as $hodnota_pole) { fputcsv($fp,str_replace("<br>","\n",$hodnota_pole) . "\t"); $p++; } } Fclose($fp); |
||
juriad Profil |
notwist:
Dal jsem ti celý kód, nemusíš jej nijak upravovat. Ve skutečnosti jsi to tedy celé pokazil. fputcsv zpracuje celý řádek, nikoli jednu buňku. |
||
notwist Profil |
#6 · Zasláno: 16. 2. 2016, 15:56:40
juriad:
Aha :-) Tak teď je to OK :-). Díky... |
||
Časová prodleva: 9 let
|
0