Одну функцию несколько раз...

tolst

Новичок
Одну функцию несколько раз...

Привет народ...
Помогите пожалуеста решить данную проблему:

У меня есть код:
PHP:
$html_out = str_replace("%BAnner_468_x_60%", banner_468_x_60(), $html_out);
Проблема в том, что функция banner_468_x_60() выводит случайным образом банер из бд, но если в переменной $html_out найденно не одно %BAnner_468_x_60%, а две например, то выходит так, что оба получаются одинаковы... как сделать так, чтобы для каждого %BAnner_468_x_60% при замене вызовалась функция banner_468_x_60()???

Заранее спосибо!!!
 

Popoff

popoff.donetsk.ua
используй [m]preg_replace[/m] - там есть еще один аргумент, который позволяет заменить только одно вхождение, а не все
посмотри так же функцию [m]preg_replace_callback[/m]
 

Popoff

popoff.donetsk.ua
сходи по тем ссылкам, которые я тебе дал - там толпа примеров :)
 

Popoff

popoff.donetsk.ua
Спесияльно для тебя :) Интересно было хоть раз в жизни preg_replace_callback попробовать :)
PHP:
function q($m)
{
  return mt_rand(0,9);
}
$q="-a-b-c-d-e-f-g-h-i-j";
$q=preg_replace_callback('/[a-z]/','q',$q);
echo $q;
 

Popoff

popoff.donetsk.ua
в результате получится что-то типа
Код:
-0-0-2-1-6-4-0-1-9-7
 

Bloody

Guest
Проще и быстрее:
$string=preg_replace("/%BAnner_480_x_60%/e","banner_480_x_60()",$string);
 

Popoff

popoff.donetsk.ua
не проще, потому что callback сразу видно, а е попробуй увидь %)
как определил, что быстрее?
 

Bloody

Guest
Да нет - это выражение такое "проще и быстрее" (типа "дешево и сердито") :)
 
Сверху