Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Подгрузка страниц и работа с строками


Автор: Dima85 9.12.2010, 00:16
Подгружаю файл, в нем смотрю первую строчку

Код

preg_match("#<h2[^>]*>([^<]+)</h2>#isU",$filename,$buf);
echo $buf[1];


Которая выглядет таким образом:

Код

<h2 class="move">Название страницы</h2>


и записываю текст в переменную.

Это все работает но если в подгружаемый файл в первую строчку добавить "<?php echo $taxifirm; ?>"
Пример:
Код

<h2 class="move">Название <?php echo $taxifirm; ?></h2>


то $buf[1] оказывается пустым, почему и что делать?

Автор: ayax2005 9.12.2010, 00:43
Может быть потому, что когда вы читаете файл, он не исполняется как скрипт, а знака ? нет в вашей регулярке?)

Автор: Dima85 9.12.2010, 00:51
Возможно. Как это исправить?

А может быть ошибка в этом  "#<h2[^>]*>([^<]+)</h2>#isU"

Может он неправильно понимает <?php ?>?

Автор: skyboy 9.12.2010, 01:23
регулярка
Цитата(Dima85 @  8.12.2010,  23:16 Найти цитируемый пост)
#<h2[^>]*>([^<]+)</h2>#isU

не соответствует строке
Цитата(Dima85 @  8.12.2010,  23:16 Найти цитируемый пост)
<h2 class="move">Название <?php echo $taxifirm; ?></h2>

кроме того, если под "подгружением" понимается file_get_contents/file и т.д., то выражение <?php echo $taxifirm; ?> никак не будет выполнено перед разбором строк файла. И в итоге(даже если исправишь свою регулярку, которая "разбивалась" бы и о <h2><b>test</b></h2>) ты получишь смесь текста и РНР-кода, который будет выведен, а не выполнен(если только ты не используешь eval)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)