Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> eval элемента массива 
V
    Опции темы
gta4kv
Дата 20.12.2007, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 21
Всего: 91



Всем привет!

Есть некий php код в html файле, получаемый извращенским способом:

Код

    preg_match_all( '/<div id=\"php\">.*<\/div>/isU', $file_content, $matches );


Далее естественно нам надо его выполнить:

Код

$xren =  $matches[0][0] ; // в этой строке у нас оказывается echo "Preved";
eval ( $xren ) ; exit;


В итоге получаем ошибку:
Код

Parse error: syntax error, unexpected '<' in file.php(128) : eval()'d code on line 1


Если же написать:
Код

eval( ' echo "Preved"; ' );


или

Код

$test = array( 'echo "Preved";' );
eval( $test[0] );


То все зашибись.

Что же не так?
PM MAIL   Вверх
Mal Hack
Дата 20.12.2007, 15:29 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



gta4kv,  у тебя там скорее всего не 
Цитата
echo "Privet";

а вся бодяга вместе с дивами, т.к. 0 индекс первый - номер нахождения первой строки по паттерну, нулевой индекс второй - сама найденная строка, тебе надо бы .* в скобки взять и использовать [0][1].

 А вообще, что за задача, ибо не шобко это верно и оптимально.
PM ICQ   Вверх
gta4kv
Дата 20.12.2007, 15:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 21
Всего: 91



Mal Hack, неа.. Я же проверял все двести раз. Там все нормально... все что нужно находиться в [0][0]; 

Регулярка берет все внути тега.

Цитата

 А вообще, что за задача, ибо не шобко это верно и оптимально. 


Ну просто есть некая "cms" которая шаблон выводит через себя, т.е не инклюдит, а читает и выдает.
А реализовать использование php в шаблоне нужно именно так. :(

Это сообщение отредактировал(а) gta4kv - 20.12.2007, 15:36
PM MAIL   Вверх
skyboy
Дата 20.12.2007, 18:45 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



Цитата(gta4kv @  20.12.2007,  14:34 Найти цитируемый пост)
Mal Hack, неа.. Я же проверял все двести раз. 

делал так:
Код

echo $matches[0][0];

а потом смотрел не HTML-код, а то, что отображает браузер?
там(по индексу [0][0]) просто обязана быть вся совпавшая строка. вместе с div'ами!
PM MAIL   Вверх
gta4kv
Дата 20.12.2007, 18:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 21
Всего: 91



skyboy, блин и вправду smile) а можно регуляркой извлечь то что внутри?
PM MAIL   Вверх
mishaSL
Дата 20.12.2007, 18:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

Репутация: 19
Всего: 54



Цитата(gta4kv @  20.12.2007,  18:51 Найти цитируемый пост)
skyboy, блин и вправду smile) а можно регуляркой извлечь то что внутри? 

Код

preg_match_all( '/<div id=\"php\">(.*)<\/div>/isU', $file_content, $matches );


Добавлено через 40 секунд
Соответственно потом нужный тебе элемент $matches и используй.


--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
gta4kv
Дата 20.12.2007, 18:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 21
Всего: 91



mishaSL, у меня такая же регулярка, вот вар_дамп:

Код

array(1) {
  [0]=>
  string(42) "<div id="php">
        echo "Preved";    
    </div>"
}

PM MAIL   Вверх
skyboy
Дата 20.12.2007, 20:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



gta4kv, у тебя в регулярке(по крайней мере, в приведенной тобою в первом посте) нет "(" и ")" вокруг ".*". Тебе ж ещё Mal Hack говорил:
Цитата(Mal Hack @  20.12.2007,  14:29 Найти цитируемый пост)
тебе надо бы .* в скобки взять и использовать [0][1].

почему не читаешь посты? люди отвечают-отвечают, а ты опять и опять спрашиваешь...
PM MAIL   Вверх
gta4kv
Дата 20.12.2007, 20:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 21
Всего: 91



skyboy, [пип], я уже поправил давно.. это в первом посте у меня такая регулярка.. я же блин не дурак  smile 



Код

preg_match_all( '/<div id=\"php\">(.*)<\/div>/isU', $file_content, $matches );
var_dump($matches[0]); exit;



Вот так выходит с дивами.. плюс [0][1] нету.. тока [0][0]

Это сообщение отредактировал(а) gta4kv - 20.12.2007, 21:09
PM MAIL   Вверх
skyboy
Дата 20.12.2007, 21:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



странно.
а $matches целиком что содержит?

Добавлено через 2 минуты и 10 секунд
это что ли в $matches:
Цитата(gta4kv @  20.12.2007,  17:58 Найти цитируемый пост)
Код

array(1) {
  [0]=>
  string(42) "<div id="php">
        echo "Preved";    
    </div>"

}
?
    
PM MAIL   Вверх
SelenIT
Дата 20.12.2007, 22:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 32
Всего: 401



gta4kv, а кроме $matches[0] в $matches случайно ничего нет?  smile

Добавлено через 1 минуту и 3 секунды
Цитата(gta4kv @  20.12.2007,  20:31 Найти цитируемый пост)
[0][1] нету.. тока [0][0]

а [1][0]?  smile 


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
gta4kv
Дата 20.12.2007, 22:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 21
Всего: 91



Вообщем я разобрался сам )

Еще один вопрос возник, не хочу из-за него новую тему клепать

У меня php код вставляется где то в середине шаблона, но он естественно выводиться сверху, можно сделать так что бы выводилось все в том же диве?

Это сообщение отредактировал(а) gta4kv - 20.12.2007, 22:50
PM MAIL   Вверх
skyboy
Дата 20.12.2007, 23:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



Цитата(gta4kv @  20.12.2007,  21:44 Найти цитируемый пост)
Еще один вопрос возник, не хочу из-за него новую тему клепать


M
skyboy
лень? а придется. несколько вопросов в одной теме сугубо не приветствуются.

Цитата(gta4kv @  20.12.2007,  21:44 Найти цитируемый пост)
Вообщем я разобрался сам )

и? что ж ты - тебе помогали, а ты даже решение не озвучишь?
PM MAIL   Вверх
gta4kv
Дата 21.12.2007, 13:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 21
Всего: 91



Цитата(skyboy @ 20.12.2007,  23:37)
и? что ж ты - тебе помогали, а ты даже решение не озвучишь?

Да тут магия замешена )  

В [1] было пусто, перезагрузил компьютер - заработало. smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0694 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.