Eval()+preg_match

Статус
Закрыто для дальнейших ответов.

v0rbis

selfcoded
Регистрация
02.05.2005
Сообщения
923
короче, день рабочий уже почти завершен, бошка трещит и дергается глаз...

надо, а не получается:

найти в массиве текста строку кода на ПХП и парсить его уже как кусок пхп кода, а не текста.

т.е. eval + REGEXP ..... подскажите.
 

Creator

Administrator
Команда форума
Регистрация
03.03.2005
Сообщения
1 745
Виталь, мог бы привести содержимое массива...

Набросал для тебя примерчик - то что я понял из того, что тебе надо:

Код:
$asd[]='asdasd <?echo 1123123?> sadad';
$asd[]='q <?echo 2sf?> ew';
$asd[]='asd <?echo 3?> fd';

$a=preg_replace('|(?:<\?(.*)\?>)|Ue','strlen(\'\\1\');',$asd);

print_r($a);
ОФФ: сегодня экзамен...страфно:)
 

v0rbis

selfcoded
Регистрация
02.05.2005
Сообщения
923
Код:
// $v['text'] содержит текст из БД в которой есть КМС-совский код для создания ссыслки
// ссылка имеет вид: <?=$cms_pages->get_site_page($cms_this_page_id, 29); ?>
// следовательно этот кусок кода и необходимо заколбасить

$prep=preg_replace('|(?:<\?(.*)\?>)|Ue','strlen(\'\\1\');',$v['text']);

echo $prep;
все бы ничего, но както не так код сколбасило... буду рыть дальше


ОФФ: удачи тебе на экз! тока 5 и никаких вариантов :)
 

v0rbis

selfcoded
Регистрация
02.05.2005
Сообщения
923
ура! я сделал это! нашел умный ртфм, как бы это глупо не звучало...

Код:
$code=str_replace('<'.'?php','<'.'?',$v['text']);
$code='?'.'>'.trim($code).'<'.'?';

eval($code);
сия штука именно так и делает как надо, Леха, ты меня направил на путь истинный в плане реплейса.
 

v0rbis

selfcoded
Регистрация
02.05.2005
Сообщения
923
год дамн да факап!!!!

ну не парсит он иногда все равно. и проверяю уже вроде на необходимость парсинга и все равно. на символ ":" где то напарывается и умирает.
 
Статус
Закрыто для дальнейших ответов.
Верх Низ