Помощ за preg_replace

bittersweet_boy

Registered
Проблемът ми е следният: Трябва да приложа функция rep за втори аргумент на preg_replace. Rep приема 2 аргумента, но и двата трябва да бъдат мачнати от preg_replace, ама нещо не става :(. Ето какво пробвам:

Код:
$str=preg_replace("/\[code=(.*?)\](.*?)\[\/code\]/is", rep("$1","$2"), $str);

Неприятното е, че тогава rep приема за първи аргумент числото 1 :shock:, а за втори - второто мачване. Който може, да помага... :| :| :|
 
Пробвай това:
$str = preg_match_all("/\
Код:
(.*?)\[\/code\]/is", $str, $m, PREG_PATTERN_ORDER);

foreach ($m[0] as $k => $v)
{
$replace = rep($m[1][$k], $m[2][$k]);

$str = str_ireplace($v, $replace, $str);
}
[/quote]
 
Забравих да уточня, че текстът в $str накрая ми трябва целия като само приложа функцията rep на заграденото в [code*][/code]

StormBreaker, благодаря за бързия отговор, пробвах, обае нищо не става и ми изгубва цялата информация.
 
Забравил съм да махна $str = ... на първия ред

preg_match_all("/\
Код:
(.*?)\[\/code\]/is", $str, $m, PREG_PATTERN_ORDER);

foreach ($m[0] as $k => $v)
{
$replace = rep($m[1][$k], $m[2][$k]);

$str = str_ireplace($v, $replace, $str);
}
[/quote]
 
Ей, страшен си! Точно това решава проблема. А се чудя за подобна шмекерия близо от година... :D
 
bittersweet_boy каза:
Ей, страшен си! Точно това решава проблема. А се чудя за подобна шмекерия близо от година... :D

И на мен ми трябваше наскоро. Правих една темплейт система. :D
 

Горе