Autor Zpráva
RiZe
Profil
Jak by měl pls vypadat regulák, který převede text s dvojím odentrování na odstavec. Nějak se mi to nepodařilo spatlat. A nebo to regulákem ani nejde?
Retal
Profil
A co míníš tím "dvojím odentrováním"? V jaké formě je uloženo v textech?
RiZe
Profil
No myslím, že v administraci někdo píše článek a dvojitým odentrováním udělá odstavec. Při zpracování to profrčí nějakým regexpem a ten nahradí ty \n\n odstavci př.:



První odstavec

Po dvou odentrování druhý odstavec

A třetí


a výsledek by měl být


<p>
První odstavec
</p>
<p>
Po dvou odentrování druhý odstavec
</p>
<p>
A třetí
</p>
Retal
Profil
Regexpy nejsou potřeba:
$text = '<p>'.str_replace("\r\n\r\n", '</p><p>', $text).'</p>';
krteczek
Profil
možná trochu lepší:

//odstraníme případná \r
$text=str_replace("\r",'',$text);
//nahradíme více než dva entry právě jen dvěma entry
$text=preg_replace("#(\n{3,})#", "\n\n", $text);
$text = '<p>'.str_replace("\r\n\r\n", '</p><p>', $text).'</p>';
krteczek
Profil
koukám na to a šlo by to ještě zlepšit:-)

//odstraníme přebytečné mezery
$text=trim($text);

//odstraníme případná \r
$text=str_replace("\r",'',$text);

//nahradíme více než dva entry </p><p>
$text="<p>\n".preg_replace("#(\n{2,})#", "\n</p>\n<p>\n", $text)."\n</p>\n";

tady už je to i naformátováno tak jak bych si to představoval ve výpisu kodu ja (ještě ny šel přidat tabulátor na odsazení textu od kodu)
Toto téma je uzamčeno. Odpověď nelze zaslat.