![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
InfMag |
|
||||
… ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1037 Регистрация: 21.11.2004 Репутация: 1 Всего: 4 |
Есть такая задача, из строки выделяются только куски кода типа <?php...?>
И через eval должно выполниться только ... Вот мои попытки:
Ничего к сожалению не получилось, потомчу что там идет весь много чего и таких php вставок может быть сколько угодно. Прошу помощи. Вот например, имеется строка:
И должно выполниться только $a=1; и $a++; |
||||
|
|||||
vasac |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1060 Регистрация: 4.5.2006 Репутация: 8 Всего: 36 |
InfMag, вы выделяется строки вместе с тэгами <?php и ?> а их в исполняемом коде, который скармливается eval() быть не должно.
И сначала попробуйте просто вытащить нужный текст, а потом уже eval привлекайте. ЗЫ. А если это берется из файла, то можно просто подключить его из include, включив буфер для вывода и все выполнится и так. |
|||
|
||||
InfMag |
|
|||
… ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1037 Регистрация: 21.11.2004 Репутация: 1 Всего: 4 |
vasac, Берется из базы.
"вы выделяется строки вместе с тэгами <?php и ?> а их в исполняемом коде, который скармливается eval() быть не должно." - дык зачем по вашему я написал рег? ---> $evalcode = preg_replace("#\<\?php(.+)\?\>#siU", "\\1", $str); |
|||
|
||||
vasac |
|
||||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1060 Регистрация: 4.5.2006 Репутация: 8 Всего: 36 |
InfMag, а пардон. Так все у вас нормально с регуляркой. Только зачем _replace?
В итоге 2 совпадения. Структура A:
A[1] - набор вычлененных кодов. Выполнять по очереди. |
||||
|
|||||
InfMag |
|
|||
… ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1037 Регистрация: 21.11.2004 Репутация: 1 Всего: 4 |
vasac, мне бы еще хорошо реализовать так, что если в этом коде будет написано например echo, то вывод делался именно там, где было это <?php ... ?>
|
|||
|
||||
vasac |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1060 Регистрация: 4.5.2006 Репутация: 8 Всего: 36 |
Можно без регулярок:
Только не будет работать с "<?php" в верхнем регистре "<?PHP" например. И если "?>" будет встречаться в комментариях. А так вполне... |
|||
|
||||
InfMag |
|
|||
… ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1037 Регистрация: 21.11.2004 Репутация: 1 Всего: 4 |
Вот что уже написал:
Только теперь мне нужно сделать так, чтобы результат eval выводился именно там, где и был <?php?> |
|||
|
||||
vasac |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1060 Регистрация: 4.5.2006 Репутация: 8 Всего: 36 |
InfMag, не понятно. Нужно чтобы выводился текст вне тэгов php, а сами тэги заменялись на их результат? Мой предыдущий пример это и делает.
|
|||
|
||||
InfMag |
|
|||
… ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1037 Регистрация: 21.11.2004 Репутация: 1 Всего: 4 |
vasac, большое спасибо, очень помог, +1
Вот что получилось:
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |