Autor Zpráva
lojza
Profil *
jak muzu v php v rozsahlem textu ktery mam v databazi najit a nahradit prazdny odstavec?


toto je blbost ?
$zaznam = str_replace("<p>"." "."</p>", '<br>', $zaznam);
shaggy
Profil
lojza:
toto je blbost ?
Ak chceš nájsť presne <p> </p> (aj s medzerou uprostred), tak to nie je blbosť.
Ale samotný zápis je blbosť, prečo spájaš reťazec, prečo rovno nenapíšeš?
str_replace("<p> </p>", '<br>', $zaznam);
Kubo2
Profil
lojza:
najit a nahradit prazdny odstavec

Čo definuješ pod pojmom prázdny odstavec? Ak si pod tým predstavuješ značky paragraph s medzerou uprostred, tak ti kód od shaggyho postačí, ale ak chceš niečo zložitejšie a všeobecnejšie, môžu pomôcť regulárne výrazy (a predpokladám, že pomôžu):

<?php
// ...
// RegExp pre prázdny odstavec
$regexp_emptyParagraph = "~[\s\r\n]*<p>[\s\r\n]*</p>[\s\r\n]*~i";

// odstránenie všetkých prázdnych odstavcov pomocou PHP PCRE
$zaznam = preg_replace($regexp_emptyParagraph, "\n<br>\n", $zaznam);
// robím niečo so záznamom
// ...


Edit: Pozri na online PHP shell pre výsledok scriptu (99,8% funkčnosť).

Joker
Profil
lojza:
To záleží, co je vlastně „prázdný“ odstavec a jaké všechny styly prázdných odstavců to má umět.
Z příkladu v [#1] soudím, že odstavec obsahující jen bílé znaky je taky „prázdný“.
Takže příklady „prázdných“ odstavců (v HTML) mohou být třeba:
<p>
<p> </p>
<p>
</p>
<p><h2>Nadpis</h2>

Kdyby to mělo zachytit všechny, musel by se použít HTML parser.

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: