Autor Zpráva
PHP
Profil *
Prosím, potřebuju poradit, chci zformátovat retezec $text, kde promena $text je vstup od uživatele, tak, aby jeden enter byl nový řádek (není problém) a více než dva entry by byl odstavec, hledal jsem tady někdo tu měl řešení, ale nefungovalo:-( Nemá už někdo takový skript napsaný?
bigi
Profil *
co třeba:
$text = Str_Replace("\r\n\r\n","<p />", $text);
$text = Str_Replace("\r\n","<br />", $text);
PHP
Profil *
hm to vim ale to fungovat nebude a navic neresel bych to jako <p />
tark
Profil
nl2br() - zalomi ti to v pohode, jinak zkus treba texy (www.texy.info)
meca
Profil
Myslím, že to bigiho by fungovat mělo... Já to tedy dělám trochu... ehm... jinak:

$text = '<p>'.$text.'</p>';
$text = Str_Replace("\r\n\r\n","</p><p>", $text);
Pavka
Profil
Tag <p> je párová značka, tudíš ji nemůžeš zapsat jako nepárovou (<p />). Prohlížeče by měli takovouto značku ignorovat.
meca
Profil
Pavka
Můžeš... stejně tak jako párovou značku <br> všichni píšou jako nepárovou <br /> ... A vůbec, všechny značky v XHTML jsou párové, kromě DOCTYPE, IMHO...
centi
Profil
PHP
http://www.centi.local.sk/server-side/09-2004/php-funkcia-makep/
Charlie
Profil
Já bych to řešil takhle:

function zformatuj($text) {
$text = str_replace("\r",$text); // odstraní se \r, to na nic nepotřebujeme.
$text = ereg_replace("\n\n+","\n\n"); // více enterů se nahradí dvěma
$odstavce = explode("\n\n",$text);
$vystup = '';
foreach ($odstavce as $odstavec) {
$vystup = "<p>".trim(str_replace("\n","<br />"))."</p>\n"; //vytvoří odstavec, nahradí odřádkování, a pro pěkný kód ještě hodí enter za odstavcem.
}
return $vystup;
}
Tom2006
Profil *
Charlie:

Mně to nefungovalo, tak jsem to musel upravit takto:

$text = str_replace("\r","",$text);
$text = ereg_replace("\n\n+","\n\n",$text);
Toto téma je uzamčeno. Odpověď nelze zaslat.