Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem PHP: výpis souboru včetně odřádkování

Ahoj,

vytvářím si v php jednoduchý administrační systém pro web, a narazil jsem na zádrhel:

Obsah každé stránky mám uložený v souborech home.txt, kontakt.txt, atd., a na každou konkrétní stránku jsem ho chtěl vypisovat příkazem readfile. Nastal ale problém - soubor se zobrazí bez odřádkování v "jedné větě", přestože ve zdrojovém souboru odřádkování použité bylo.

Nevíte někdo, prosím, co s tím?

Díky

Předmět Autor Datum
A odradkovani bylo pouzite jakym zpusobem? Klasicke odradkovani? Pak bys musel soubor vypsat jako ko…
Jan Fiala 20.04.2009 11:01
Jan Fiala
Ano, odřádkování je provedeno klasicky Enterem. Tagem BR právě odřádkovat nemohu - text, který se má…
troo 20.04.2009 11:20
troo
Odřádkování přes \n nefunguje?
MaSo 20.04.2009 11:26
MaSo
a nl2br v PHP nelze pouzit? //edit: marvin byl rychlejsi :-(
gd 20.04.2009 11:37
gd
V tom načítaném souboru musíš použít HTML tag <br />, pokud chceš, aby se v prohlížečí text zalomil.…
Marvin 20.04.2009 11:35
Marvin
No reseni je jednoduche pokud vypisujes textak tak na to je treba toto <?php $naka_promenna_textak_…
virus 20.04.2009 11:40
virus
Tak už to mám vyřešené - nakonec pomohl onen tag nl2br. Kód vypadá takto: (formulářem uložím do sou…
troo 20.04.2009 11:48
troo
Já používám před uložením do databáze //postrehy_namety $postrehy_namety= Str_Replace("<","&lt;",$p…
Kráťa 20.04.2009 11:51
Kráťa
Kdyztak jsem Krato na ICQ, pisni kdyby neco, stejne se v praci ted flakam. 8-) poslední
virus 20.04.2009 11:54
virus

Ano, odřádkování je provedeno klasicky Enterem. Tagem BR právě odřádkovat nemohu - text, který se má zobrazit, totiž zapisuje uživatel ve formuláři do textarea, a posléze se ukládá do souboru neco.txt. A nebylo by příliš sofistikované místo mačkání Enteru psát tag BR... :)
Jak jsi to myslel, s těmi tagy KBD? Uzavření zobrazovaného textu do tagu KBD mi nefunguje.

No reseni je jednoduche pokud vypisujes textak tak na to je treba toto

<?php
$naka_promenna_textak_cesta = "www/".$_GET['neco'].".txt";
$obsah = file($naka_promenna_textak_cesta);
//a pak treba 
$i = 0;
While (count($obsah) > $i) {
echo $obsah[$i]."<br>";
$i++;
}
// potom to lze takto 

$data = ereg_replace("(\<)([bB][rR](\>)","\n",$data);
?>
-----------zde mas <form ... >--------------------------------------------

<textarea cols="1" rows="1" name="xxxx" >
<?php echo $data; ?>
</textarea>

Stim regularnim vyrazem si muzes pohrat i zde
index.php 8-)

Tak už to mám vyřešené - nakonec pomohl onen tag nl2br.
Kód vypadá takto:

(formulářem uložím do souboru home.txt textový obsah stránky)

<?

$soubor = fopen("home.txt", "r");
$obsah = fread($soubor, 1000);
fclose($soubor);

echo nl2br($obsah);

?>

... a je to. :) Při zadávání obsahu stránky do formuláře mohu používat odřádkování Enterem (uživatelsky pohodlné a nenáročné), což se poté při výpisu hodnoty $obsah také náležitě zobrazí.
Díky za rady, pánové!

Já používám před uložením do databáze

//postrehy_namety
$postrehy_namety= Str_Replace("<","&lt;",$postrehy_namety);
$postrehy_namety= Str_Replace(">","&gt;",$postrehy_namety);
$postrehy_namety= Str_Replace("\n","<br>",$postrehy_namety);
$postrehy_namety= Str_Replace("[b]","<b>",$postrehy_namety);
$postrehy_namety= Str_Replace("[/b]","</b>",$postrehy_namety);
$postrehy_namety= Str_Replace("[i]","<i>",$postrehy_namety);
$postrehy_namety= Str_Replace("[/i]","</i>",$postrehy_namety);

$postrehy_namety= Str_Replace("&lt;b&gt;","<b>",$postrehy_namety);
$postrehy_namety= Str_Replace("&lt;/b&gt;","</b>",$postrehy_namety); 
$postrehy_namety= Str_Replace("&lt;ib&gt;","<i>",$postrehy_namety);
$postrehy_namety= Str_Replace("&lt;/ib&gt;","</i>",$postrehy_namety) ;

//url
$postrehy_namety= preg_replace('#(http://|ftp://|(www\.))([\w\-]*\.[ \w\-\.]*([/?][^\s]*)?)#e',"'<a href=\"'.('\\1'=='www.'?'http://':'\\1').'\\2\\3\" >'.((strlen('\\2\\3')>23)?(substr('\\2\\3',0,20).' &hellip;'):'\\2\\3').'</a>'",$postrehy_namety);

Odstraní mi to < a >, tučně a kurzivou jde psát přes [ i ], zalamuje to řádky a dělá z url odkazy. Poradili mi s tím marvin, los, virus. Díky kluci.

Zpět do poradny Odpovědět na původní otázku Nahoru