Результат поиска по шаблону как Array key (не работает)

Rory

Новичок
Результат поиска по шаблону как Array key (не работает)

Почему следующий код не работает, как следует?
PHP:
$some_array["boo"] = "gaga";
echo eregi_replace("boo", $some_array["\\0"], "Radio boo!");
выдает
PHP:
Radio !
, а не
PHP:
Radio gaga!
 

DiMA

php.spb.ru
Команда форума
"\\0" - это бред (в сочетании с $array), переделай
 

Rory

Новичок
Почему бред? Я сильно упростил для примера.
Пусть будет так, может, яснее идея, для чего это.
PHP:
$text = eregi_replace("\[img]([0-9]+)-([^\.]*)\.(jpg|jpeg|gif|png)\[/img]", "<img src=\"\\2.\\3\" alt=\"".$some_array["\\1\\2\\3"]."\" />", $text);
 

DiMA

php.spb.ru
Команда форума
Сказано "БРЕД", значит сидишь и ищешь.

Не в состоянии увидеть его - продумай и задай вопрос по регам без использования переменных.
 

Rory

Новичок
DiMA
Ваше мнение я понял.
Если не можете ничего посоветовать, просто оставьте это другим.
 

Gas

может по одной?
Rory
можешь сделать через preg_replace и модификатор 'e'
 

DiMA

php.spb.ru
Команда форума
Боже, откуда такие тупые берутся? Даже после 2х кратного тыканья носом...

echo eregi_replace("boo", $some_array["\\0"], "Radio boo!");

На первом этапе выполнения пхп будет искать в массиве элемент с ключем "\\0", не найдет его (т.к. существует только ключ "boo").
На втором этапе строка "boo" заменится на "".

Если тебе приперло, чтобы строка заработала, нужно сделать
$some_array["\\0"]="Я блондинко" (до рега)
либо
echo eregi_replace("boo", $some_array["boo"], "Radio boo!");

-~{}~ 18.02.09 17:49:

Чтобы сделать динамическую подстановку по массиву, сначала осмысли свою ошибку, потом <можешь сделать через preg_replace и модификатор 'e'>
 

Rory

Новичок
Gas
К сожалению, и через preg_replace с /e ключ трактуется, как текст.

DiMA
Вы своими репликами только увеличиваете энтропию во Вселенной.
 

DiMA

php.spb.ru
Команда форума
покажи свою очередную глупость с preg... ее тоже исправят
за реплики не по теме - она уйдет в корзину
 

Rory

Новичок
Все, спасибо, разобрался. Надо так:
PHP:
$some_array["boo"] = "gaga";
echo preg_replace("/(boo)/ie", '$some_array[$1]', "Radio boo!");
 
Сверху