| 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: 16 let
|
|||
0