Autor | Zpráva | ||
---|---|---|---|
raddimm.xx Profil |
Nevidím chybku
$data = "To je ale [url=http://stackoverflow.com]http://stackoverflow.com[/url] docela m To je ale"; $match = [ '/\[url=([^\]]+)\](.*)\[\/url\]/im', '/\[b\](.*)\[\/b\]/im', ]; $replace = [ '<a href="$1">$2</a>', '<strong>$1</strong>', ]; echo preg_replace($match, $replace, $data); Toto vypíše vše OK Změní odkaz ... ale když umístím další odkaz nebo jen [/url] tak to udělá aktivní celou část až do poslední [/url] který najde $data = "To je ale [url=http://stackoverflow.com]http://stackoverflow.com[/url] docela m To je ale [/url]"; Výsledek: To je ale <a href="[url=http://stackoverflow.com">stackoverflow[/url]http://stackoverflow.com">stackoverflow[/url[/url]] docela m To je ale </a> |
||
Radek9 Profil |
#2 · Zasláno: 29. 10. 2020, 12:10:31
raddimm.xx:
Použij blok pro kód (Ctrl + E), takhle se ti do toho míchá místní BBCode a není z toho nic poznat. |
||
raddimm.xx Profil |
#3 · Zasláno: 29. 10. 2020, 12:16:27
Radek9:
pardon, upraveno snad |
||
blaaablaaa Profil |
#4 · Zasláno: 29. 10. 2020, 13:34:59
raddimm.xx:
Výsledek podle příkladu je sice jiný, ale myslím, že chceš použít non-greedy expression - .*? (snaží se najít co nejkratší string)
|
||
raddimm.xx Profil |
#5 · Zasláno: 29. 10. 2020, 14:57:40
blaaablaaa:
DEKUJI mega moc |
||
Časová prodleva: 4 roky
|
0