Autor Zpráva
milbr
Profil *
Přeji pěkný den,
chtěl bych Vás poprosit o radu, jak řešíte formátování textu v php. Hledal jsem tady v diskuzi ale nic jsem nenašel. Asi by pomohlo preg_replace a ale nemám s ním moc velké zkušenosti. Používám nl2br na odsazení textu ale to nevyřeší toto.
Mám v databázi toto:

Toto je nadpis druhé úrovně //tady je nadpis který potřebuji do
<h2></h2>
vypsat jako nadpis druhé úrovně

Text TextTextTextTextTextTextTextTextv //Tady je nějaký text v odstavci, který potřebuji do
<p></p>


Tady opět nadpis druhé úrovně // tady je nadpis který potřebuji do
<h2></h2>
vypsat jako nadpis druhé úrovně

Děkuji moc za pomoc a přeju pěkný den. Milan
Joker
Profil
milbr:
A podle čeho se v tom vstupním textu pozná co je nadpis a co je text?

Nebo je tohle taky součást dotazu?
V tom případě může být několik metod:
- nejjednodušší je posílat vstup přímo v HTML (třeba přes různé WYSIWYG editory apod)... akorát je pak třeba vyházet nepovolené tagy
- pak je třeba BBCode, Texy! apod.
milbr
Profil *
Joker:
Děkuji za odpověď, upřesním svůj dotaz.
Přebral jsem úpravu stránek a v databázi je text tak jak jsem ho uvedl výše. Nechce se mi předělávat celou strukturu jak databáze tak následného výpisu.

Pomocí nl2br jsem alespoň odsadil text, je pravda že nelze rozeznat co je text a co nadpis.

Jak by se to tedy dalo vyřešit když bych např. před nadpis dal * a tu nahradil <h2> to jde pomocí str_replace, nevím ale jak mám ten tag ukončit, nechce se mi tam psát další rozpoznávací znak.

Ještě jednou moc díky Milan.
Alphard
Profil
milbr:
nevím ale jak mám ten tag ukončit
Je ukončen koncem řádku, ne?
milbr
Profil *
Alphard:
Děkuji za odpověď prosím o vysvětlení toho konce řádku, když použiji toto
$box6 = str_replace("*", "<h2 class=\"nadpis_box\">", $nadpisy['box6_cz']);
tak jak za ten nadpis, který začíná hvězdičkou dostanu ukončovací tag </h2> aniž bych tam psal další rozpoznávací znak.

Moc Vám děkuji MIlan
Alphard
Profil
$text = preg_replace("~\*(.+)\n~U", '<h2>$1</h2>', $text);
milbr
Profil *
Alphard:
Musím moc poděkovat, vyzkoušel jsem to a je to paráda, funguje bez problémů.

Ještě jednou moooooc díky!
Problém vyřešen.

Pěknej den přeje všem Milan
milbr
Profil *
Pěkné odpledne,

chtěl bych se vrátit k mému staršímu příspěvku a poprosit Vás, zda by nešlo míst o hvězdičky
$text = preg_replace("~\*(.+)\n~U", '<h2>$1</h2>', $text);
nějak zakomponovat do scriptu použití nl2br.

Moc děkuji všem Milan

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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