|
|
|
| Что за черт,сколько пользовался регулярными,а на простейшем $a=preg_replace ("~###([_a-z0-9]+)###~im","$GLOBALS['$1']",$a) застрял :-( Уже пробовал и "$GLOBALS['$1']",и "$GLOBALS[$1]",и "$GLOBALS[\"$1\"]",и $GLOBALS["$1"].Подскажите,где я туплю ? | |
|
|
|
|
|
|
|
для: Ralph
(05.04.2008 в 08:25)
| | Не понятно, в чём заключается проблема? | |
|
|
|
|
|
|
|
для: cheops
(05.04.2008 в 12:18)
| | Да проблема в том,что выдает или undefined variable $1,или unexpected T_ENCAPSED/unexpected $.В общем,замены не происходит :-(
Пробовал и через модификатор e-тоже никак | |
|
|
|
|
автор: _ _ (05.04.2008 в 13:01) |
|
|
для: cheops
(05.04.2008 в 12:18)
| | рискну предположить :) что автор пытается получить значение переменной с именем совпавшим с подмаской $1
, а значение $1 как и $GLOBALS[$1] на момент прочтения интерпритатором не определено.
и получается что без модификатора "e" сделать нереально
типа
<?
$i1 = 0;
$txt = "0###i1### ###i1###";
print preg_replace('~###([^#]+)###~e', '$GLOBALS["$1"]', $txt)
?>
|
| |
|
|
|
|
|
|
|
для: _ _
(05.04.2008 в 13:01)
| | Огромное спасибо,ваш пример работает...Почему то переклинило,что внутри '' замены переменной на ее значение не будет,и этот вариант даже не пробовал | |
|
|
|