Autor | Zpráva | ||
---|---|---|---|
GreenMan Profil |
#1 · Zasláno: 30. 12. 2009, 18:11:28
Dobrý deň. Chcel by som sa vás na niečo spítať spítať.
Mám premenú napríklad $premena="Bla bla bla[tag]<b>Hrubý text</b> <img src='/IMG/img.png'>[/tag]bla bla bla"; A chcem aby každé < a > medzi [tag][/tag] sa prepísalo <> vôbec neviem ako na to. |
||
Jan Tvrdík Profil |
#2 · Zasláno: 30. 12. 2009, 18:13:28
GreenMan:
Zkusil bych preg_replace_callback. |
||
Majkl578 Profil |
#3 · Zasláno: 30. 12. 2009, 18:53:25 · Upravil/a: Majkl578
$data = "Bla bla bla[tag]<b>Hrubý text</b> <img src='/IMG/img.png'>[/tag]bla bla bla"; echo preg_replace_callback('~\[(?<tag>[a-z]+)\](?<text>.*)\[/\\1\]~Uiu', function($m) { $tag = $m['tag']; return "[$tag]" . str_replace(array('<', '>'), array('<', '>'), $m['text']) . "[/$tag]"; }, $data); |
||
GreenMan Profil |
#4 · Zasláno: 30. 12. 2009, 20:35:54
Majkl578:
Neviem či som niečo nepochopil na tom kóde ale v súbore mám len tento kód a ukazuje mi to tento error: Parse error: syntax error, unexpected T_FUNCTION in C:\Users\GreenMan\Desktop\Moje weby\nwm.php on line 4 |
||
Alphard Profil |
#5 · Zasláno: 30. 12. 2009, 21:09:10
Možná takhle:
$data = "Bla bla bla[tag]<b>Hrubý text</b> <img src='/IMG/img.png'>[/tag]bla bla bla"; function x($m) { $tag = $m[1]; return "[$tag]" . str_replace(array('<', '>'), array('<', '>'), $m[2]) . "[/$tag]"; } echo preg_replace_callback('~\[(?<tag>[a-z]+)\](?<text>.*)\[/\\1\]~Uiu', "x", $data); |
||
Majkl578 Profil |
#6 · Zasláno: 30. 12. 2009, 22:47:19 · Upravil/a: Majkl578
[#4] GreenMan
Ten kód nefunguje v PHP verzi nižší než 5.3. Alternativa je funkce (viz. [#5]) nebo create_function: $data = "Bla bla bla[tag]<b>Hrubý text</b> <img src='/IMG/img.png'>[/tag]bla bla bla"; echo preg_replace_callback('~\[(?<tag>[a-z]+)\](?<text>.*)\[/\\1\]~Uiu', create_function('$m',' $tag = $m[\'tag\']; return "[$tag]" . str_replace(array(\'<\', \'>\'), array(\'<\', \'>\'), $m[\'text\']) . "[/$tag]"; '), $data); |
||
Časová prodleva: 14 let
|
0