Autor Zpráva
Jcas
Profil *
 $text = preg_replace("/\[(\/?)url(=)?([^\]]*)?\]/", "<\\1a href=\"\\3\">", $_POST['vyraz']); 


Ono to funguje, ale:
Je to takhle správně?
Nechápu, (nemůžu najít vysvětlení), nevím proč musí být vzor uzavřen do /...../ ?

Nechápu, jaktože se v uzavíracím tagu neobjeví href, nebo aspoň jedny uvozovky. Chápu, že když není \\2, nebo\\3 ve vzoru, tak není co nahrazovat, ale JAK ON VÍ, že ( href=") se kompletně vztahuje k sekvenci \\2 ?
A JAK ON VÍ, že uvozovky před uzavíracím tagem se doplní pouze, je-li zadána sekvence \\3 ?
Stejně tak nechápu, proč třeba url nenahradí za a h ?

ps. Prostě regulární výrazy asi nikdy nepochopím.
ShiraNai7
Profil
Jcas:
Nechápu, (nemůžu najít vysvětlení), nevím proč musí být vzor uzavřen do /...../ ?

Protože regulární výraz může mít uvedeny za samotným výrazem volitelné modifikátory (viz PHP dokumentace).

Ono to funguje, ale:
Je to takhle správně?

Neřekl bych.. dává to href="" i na uzavírací tag.. takže toto:

$test = "test test";
echo preg_replace("/\[(\/?)url(=)?([^\]]*)?\]/", "<\\1a href=\"\\3\">", $test); 


Vypíše toto:
test <a href="http://google.com/">test</a href="">
Pavel Dumbrovský
Profil
Zdravím,
využil bych situace a zeptal se - která funkce se nejvíce doporučuje požívat v kombinaci s reguláry? ereg, eregi, preg_replace,... ?
Děkuji.
__construct
Profil
Pavel Dumbrovský:
využil bych situace a zeptal se
zneužil…

která funkce se nejvíce doporučuje požívat v kombinaci s reguláry
ereg_* a eregi sú DEPRECATED (teda zastarané) a v novších verziách PHP budú hlásiť chybu.

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