нужно составитmь peг. выр. для замены {m1}
цифра быть любой : {m1} , {m2}....{m9999}..... , нужно чтобы каждое чтобы вхождение заменялось на перуменню $rows [1], $rows [2], ... $rows [9999]...
Спустя 50 минут, 41 секунда (10.11.2010 - 01:18) Sanchopansa написал(а):
$str = '{m99999}';
$patern = '/^\{[a-zA-Z]+(\d+)\}$/';
echo preg_replace($patern, '$row[$1]', $str);
а если нада чтоб эта переменная после замены работала то ИМХО так
$row = array(1=>'111111','222222','33333');
$str = '{m1}';
$patern = '/^\{[a-zA-Z]+(\d+)\}$/';
$index = preg_replace($patern, '$1', $str);
echo $row[$index];
Спустя 1 час, 36 минут, 46 секунд (10.11.2010 - 02:55) kirik написал(а):
Цитата (Sanchopansa @ 9.11.2010 - 17:18) |
а если нада чтоб эта переменная после замены работала то ИМХО так |
Так покороче будет:
$row = array(1 => '111111', '222222', '33333');
$str = '{m1}';
echo preg_replace('/^\{[a-zA-Z]+(\d+)\}$/e', '$row[\\1]', $str);