| 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: 10 let
|
|||
0