Реклама на сайте Advertise with us
Тема: Php: есть готовые функции парсинга html страниц по шаблону? Расширенный поиск по форуму
 
Внимание! В связи с устареванием топика эта страница была взята из кэша.
Автор Сообщение
Информация о пользователе Sterx +


Зарегистрирован: 08.12.02
Сообщения: 2665
Ссылка на сообщениеДобавлено: 20/09/04 в 12:18     

задаешь слить в файл txt
повторения шаблона "shablon" построчно
или что то похожее?
спасибо

K началу

 
Информация о пользователе undef


Зарегистрирован: 15.09.03
Сообщения: 357
Ссылка на сообщениеДобавлено: 20/09/04 в 12:31     

Sterx писал:
задаешь слить в файл txt
повторения шаблона "shablon" построчно
или что то похожее?
спасибо


есть класс: даешь на вход шаблон в формате html + данные из скрипта
на выходе готовый html

надо?

K началу

 
Информация о пользователе Sterx +


Зарегистрирован: 08.12.02
Сообщения: 2665
Ссылка на сообщениеДобавлено: 20/09/04 в 12:53     

грубо говоря надо:
[фрагмент шаблона1][произвольный кусок кода][фрагмент шаблона2]
выдернуть такие куски из хтмл и записать построчно в файл

K началу

 
Информация о пользователе undef


Зарегистрирован: 15.09.03
Сообщения: 357
Ссылка на сообщениеДобавлено: 20/09/04 в 13:23     

Sterx писал:
грубо говоря надо:
[фрагмент шаблона1][произвольный кусок кода][фрагмент шаблона2]
выдернуть такие куски из хтмл и записать построчно в файл



"фрагмент шаблона" - заранее известно по каким признакам его выделять? тэги какие, или еще что?

K началу

 
Информация о пользователе Sterx +


Зарегистрирован: 08.12.02
Сообщения: 2665
Ссылка на сообщениеДобавлено: 20/09/04 в 13:28     

да
последовательность тегов
зы: у меня есть скрипт, но там черт ногу сломит , попроще бы чего

K началу

 
Информация о пользователе Wahoven


Зарегистрирован: 19.09.03
Сообщения: 1473
Ссылка на сообщениеДобавлено: 20/09/04 в 18:01     

preg - проще не придумаешь.

K началу

 
Информация о пользователе Jark


Зарегистрирован: 05.01.04
Сообщения: 92
Ссылка на сообщениеДобавлено: 20/09/04 в 18:21     

да, как я понял проблему - preg самое то...

K началу

 
Информация о пользователе Yahook


Зарегистрирован: 18.11.01
Сообщения: 1552
Ссылка на сообщениеДобавлено: 20/09/04 в 19:50     

Так тебе всего одна функция нужна из пхп...

K началу

 
Информация о пользователе Sterx +


Зарегистрирован: 08.12.02
Сообщения: 2665
Ссылка на сообщениеДобавлено: 20/09/04 в 22:11     

ни фига не понял.
хоть пример киньте какой нибудь
понял что мне наиболее подходит
preg_match_all
однако туплю чего то
вот код произвольный с МХ

Код:
<body bgcolor=#FFFFFF leftmargin=0 topmargin=0 marginwidth=0 marginheight=0>
   <table width=100% border=0 cellspacing=0 cellpadding=0>
      <tr bgcolor=#141A15>
         <td height=15 background=/images/dacash/_top.gif style="background-repeat:no-repeat;" valign=top align=right colspan=2 height=12 class=top><a href=http://pda.master-x.com class=top>PDA Version</a> | <a href=/about/map.html class=top>Карта сайта</a> | <a href=/about/ class=top>О нас</a> | <a href=/about/autors/ class=top>Авторам</a> | <a href=/about/partners.html class=top>Партнеры</a> | <a href=/faq/category/11/ class=top>Справка</a>&nbsp;&nbsp;</td>
      </tr>
      <tr><form name=sear method=get action="/search/forum.html?mode=results" name=search onSubmit="return this.action = document.all.searchSelect.value"><input type=hidden name=search_terms value=all>
         <td width=1 bgcolor=#551C1C><nobr><a href=/ title="Master-X Home"><img src=/images/dacash/_logo.gif width=107 height=63 border=0 /></a><a href=http://www.dacash.com title="DaCash"><img src=/images/dacash/_dacash-logo.gif width=290 height=63 border=0 /><img src=/images/dacash/_dacash-logo-text.gif width=234 height=63 border=0 /></nobr></td>
            <td bgcolor=#2B4235 align=right valign=middle class=top background=/images/dacash/top-bg.jpg>
      <nobr><input  type=text name=search_keywords size=15 style='background-color:#ffffff'>&nbsp;<select name=r style='background-color:#ffffff' id=searchSelect><option value='/search/news.html?mode=results' >в новостях</option><!-- option value=2 >в статьях</option --><option value='/search/forum.html?mode=results' selected>в форуме</option></select>&nbsp;<input  type=submit value='Поиск'>&nbsp;</nobr></td>
      </form></tr>
      <tr bgcolor=#1B2820>

как выдернуть фрагменты содержащиеся между
img src=
и
width=
?
то есть имя рисунка?

K началу

 
Информация о пользователе Dr.Syshalt


Зарегистрирован: 14.05.04
Сообщения: 145
Ссылка на сообщениеДобавлено: 21/09/04 в 09:16     

Ну, вот тебе код произвольный :)

Код:

    if ( preg_match_all("/<img.*?src=(\"|\')?(.*?)(\"|\')?\s/i",$buffer,$matches) ) {
       $result = implode("\n",$matches[2]);
       echo $result;
    }


который из этого, если в $buffer поочередно засовывать все строки текста, по строчке выведет имена картинок. Даже возможность наличия кавычек учтена.

Но все равно, HTML парсить _правильно_ достаточно трудно. Скажем, такой же код <img src=... может оказаться в комментах, или где угодно - и все поломается. Так что реальный выход вот здесь

http://php-html.sourceforge.net/

... хотя в простых случаях и pcre хватает :)

K началу

 
Информация о пользователе jagmeter


Зарегистрирован: 21.09.04
Сообщения: 13
Ссылка на сообщениеДобавлено: 21/09/04 в 13:07     

или "/<\s*img.*?src\s*=\s*[\'\"]?(.*?)[\'\"]?\s/smi"

preg_match_all("/<\s*img.*?src\s*=\s*[\'\"]?(.*?)[\'\"]?\s/smi",$buffer,$matches);
$m=array_unique($matches[1]);
//print_r($matches[1]);
sort($m);
print_r($m);

off - глобальные модификаторы должны присутствовать в любом случае, иначе, к примеру
"/<img.*?src=(\"|\')?(.*?)(\"|\')?\s/i"
на главной mx теряет 3 ссылки

K началу

 
Информация о пользователе Sterx +


Зарегистрирован: 08.12.02
Сообщения: 2665
Ссылка на сообщениеДобавлено: 21/09/04 в 23:54     

спасибо большое. отдельно - jagmeter: icon_smile.gif
цель достигнута.
правда так до конца не разобрался - куча док, в одной так написано, в другой так...

K началу

 
Информация о пользователе TAiNT


Зарегистрирован: 28.05.04
Сообщения: 110
Ссылка на сообщениеДобавлено: 22/09/04 в 12:25     

Народ, регэкспами парсить HTML гиморно icon_smile.gif ----> http://www.regexp.org/
Для этого используют HTML парсеры - на входе HTML - на выходе массив разбитый по тегам, в инете море классов готовых.
Вот например http://mesh.dl.sourceforge.net/sourceforge/php-html/phphtmlparser.tar.gz очень неплох.

UPDATE
Dr.Syshalt простите, не дочитал, тупанул icon_smile.gif

K началу

 
Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!
Внимание! В связи с устареванием топика эта страница была взята из кэша.

Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »