Autor Zpráva
Duchaplny
Profil
Zdravím,

narazil som na jeden problém pri vkladaní a vypisovaní do/z MySQL. Pri vložení textu s odstavcami, mi MySQL tieto odstavce neuloží a tak napr. text v takomto prevedení:
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
zobrazí takto:
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Neviem presne na čom to závisí. Dátový typ stĺpca je TEXT, skúšal som aj VARCHAR, no stále rovnaký výsledok. V PHP text ukladám takto:
$text = mysql_real_escape_string(htmlspecialchars($_POST[text]));
Tori
Profil
Duchaplny:
MySQL to ukládá správně, ale prohlížeč to nezobrazí - ve zdrojáku stránky by to mělo být správně.
Můžete převádět dvě po sobě následující odřádkování na <p> (preg_replace), nebo prohnat text funkcí nl2br. Buď při vkládání nového řádku (jestli ukládáte data v HTML) nebo až při výpisu z DB (jestli ukládáte jen text).
Duchaplny
Profil
Tori:
Máte pravdu, zdroják to ukáže správne, takže problém je v HTML zobrazovaní. <br /> nepoužívam, skôr ma zaujíma tá možnosť s <p> a (preg_replace) pri výpisu z DB, bo ukladám len holý text. Odstavec do (preg_replace) sa zapisuje ako "\n\n" alebo inak ?
Tori
Profil
http://stackoverflow.com/a/816102 Jestli chcete nahradit "2 a více" zlomů řádku, změňte {2} na {2,}
Duchaplny
Profil
Tori:
potreboval by som to trochu vysvetliť. Vôbec mi to nefunguje a ani neviem o čo sa snažím:
preg_replace('/(?:(?:\r\n|\r|\n)\s*){2}/s', "\n\n", $text)
Čomu konkrétne odpovedajú všetky tie znaky "?", ":", "|", atď. ?
Tori
Profil
Duchaplny:
preg_replace("/(?:(?:\r\n|\r|\n)\s*){2}/s", "<p>", $text);
První část musí být v uvozovkách, aby \n a \r fungovaly jako zalomení řádku. Svislítko odděluje alternativy (zalomení řádku pro windows, mac, *nix), ohledně ostatní syntaxe vás odkážu na http://www.regularnivyrazy.info/regularni-vyrazy-zaklady.html
_es
Profil
Duchaplny:
Na zachovanie formátovania v HTML je vhodná buď značka Bloky » pre alebo CSS vlastnosť White-space
Duchaplny
Profil
Tori:
vďaka moc za vysvetlenie a za stránku. Toto je výborné, aj keď má to svoje muchy, napr. to neukončuje </p>.

_es:
<pre> poznám, ale nerád by som to riešil touto cestou. CSS white-space som nepoznal, zaujímavá možnosť, ďakujem.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: