Консультация № 182641
27.03.2011, 15:30
55.00 руб.
0 3 1
Здравствуйте! У меня возникли сложности с таким вопросом:
Из получаемой HTML-страницы, мне нужно средствами PHP получить часть кода, заключенного между тегами:
<!-- bof social bookmarking --> и <!-- eof social bookmarking -->. Остальное мне не нужно из кода страницы. Это решение я буду вставлять в готовый скрипт. Как я понимаю, есть 2 решения этого вопроса:
1. Удалить из страницы все, что находится до первого тега и все, что после второго;
2. Вырезать все, что находится между этими тегами.
Заранее спасибо за ответ.

Обсуждение

давно
Старший Модератор
312929
1973
28.03.2011, 05:55
общий
это ответ
Здравствуйте, rock!

Проще всего воспользоваться регулярными выражениями:
Код:
$text = preg_replace("/\A.*<!-- bof social bookmarking -->(.*?)<!-- eof social bookmarking -->.*\Z/is", "\\1", $html_text);

Если в $html_text - исходное содержимое html-страницы, то в $text будет необходимая часть кода.
5
Да, все правильно. Я это и хотел услышать. Но в моем случае такая функция почему то не срабатывает, также, как не срабатывают и подобные функции, типа: str_replace. Есть видимо какая-то защита на странице. Проблема в том что я получаю свой текст в двойном экземпляре. В браузере он один, а в коде страницы, в HTML - редакторе два. Я и хотел удалить часть кода, чтобы остался один экземпляр нужного текста, но не получается.
давно
Старший Модератор
312929
1973
28.03.2011, 15:27
общий
А какая у Вас версия PHP? Возможно, отключена поддержка регулярных выражений. И можно ли посмотреть пример страницы?
Неизвестный
28.03.2011, 15:48
общий
Адресаты:
Поддержка регулярных выражений работает. Этот скрипт работал, пока сайт-донор не переделали. Насчет примера: пока не дам. Появился мой программист, не прошло и полгода. Если не справится, сообщу Вам в личку. У меня интернет - магазин. Хотя думаю что справится. Спец крутой, дисциплина - ноль.
Форма ответа