Autor Zpráva
Anon
Profil *
Zdravím,
rád bych si napsal skript, který by při vzal obsah souboru a moje značky (třeba [text]) nahradil HTML ([text] na <p>). Problém je, že nevím, jak udělat podmínku pro foreach(), nahrazení mých značek jejich HTML ekvivalenty skrze str_replace() bych už zvládl. Můžu se zeptat, jak v tomhle konkrétním případě udělat podmínku?

Děkuji za všechny rady
Kubo2
Profil
Čo za podmienku chceš písať pre foreach? foreach() sa používa pre iteráciu jednotlivých prvkov poľa, ak chceš napísať podmienku, použi if() alebo switch(), prípadne, ak potrebuješ podmienku v kontexte výrazu, použi podmienka ? platí : neplatí (tzv. ternárny operátor či podmienený výraz).
Tori
Profil
Anon:
foreach je použitelné jen na činnost typu "projdi všechny prvky pole". Vy ale požadujete "projdi všechny podřetězce, které obsahují moje značky", musíte teda ty podřetězce nejdřív nějak najít, nejspíš regulárním výrazem. Použila bych preg_replace_callback.
Alphard
Profil
Anon [#1]:
Formát, který jste si vybral, se shoduje s BB kódy (jako zde na diskusi) a pro něj existuje několik hotových řešení. Jako nejjednodušší jsem v rychlosti našel Create Simple PHP BBCode Parser function. Jako základ dobré, zajistí správně párové tagy, ale už neřeší další věci jako křížení tagů (s tím se ale nějak poperou prohlížeče) a bezpečnost.
Jak je uvedeno i v diskusi pod článkem, nepoužívejte bez ošetření varianty pracují s html atributy a nezapomeňte před převodem escpovat případné přímo zadané html prvky od uživatele.

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:

0