Autor | Zpráva | ||
---|---|---|---|
theNookyn Profil |
#1 · Zasláno: 16. 5. 2012, 19:20:32 · Upravil/a: Moderátor (editace znemožněna) 16. 5. 2012, 20:23:51
Dělám něco jako BB kódy a zkoušel jsem převést text na HTML pomocí str_replace(). Podařilo se, jenže mi to přijde na nic.
(Pokud někdo odešle [/yt], vypíše se jen \" frameborder=\"0\" allowfullscreen></iframe>. Viz kód níže.) $co = array("[yt]", "[/yt]"); $cim = array("<iframe width=\"560\" height=\"315\" src=\"http://www.youtube.com/embed/", "\" frameborder=\"0\" allowfullscreen></iframe>"); $prispevek = str_replace($co, $cim, $_POST["prispevek"]); Chtěl bych to převést do reguláru. Tak nějak by to mělo vypadat: hledat: [yt]11 různých znaků[/yt] nahradit: <iframe width="560" height="315" src="http://www.youtube.com/embed/11 různých znaků" frameborder="0" allowfullscreen></iframe> Chci použít preg_replace(). Moderátor Joker: Titulek „Regulární výrazy“ nevystihuje podstatu dotazu. Příště zkus prosím vymyslet lepší.
|
||
Darker Profil |
\[yt\][0-9a-z]{11}\[\/yt\] -i |
||
theNookyn Profil |
A když chci dostat ty znaky mezi [yt] a [/yt] do dalšího parametru?
Nyní to vypadá takto: $co = "\[yt\][0-9a-z]{11}\[\/yt\] -i"; $cim = "<iframe width=\"560\" height=\"315\" src=\"http://www.youtube.com/embed/$1\" frameborder=\"0\" allowfullscreen></iframe>"; $prispevek = preg_replace($co, $cim, $_POST["prispevek"]); |
||
Darker Profil |
#4 · Zasláno: 16. 5. 2012, 21:56:38
theNookyn:
Přečti si dokumentaci preg_replace. Regulární výraz v PHP: (delemiter ~ není jediný možný) ~vyraz~parametry /vyraz/parametry |
||
theNookyn Profil |
#5 · Zasláno: 17. 5. 2012, 15:52:32
Díky moc, už to funguje :)
$co = "~\[yt\]([0-9a-z]{11})\[\/yt\]~ i"; |
||
Časová prodleva: 12 let
|
0