1 Востаннє редагувалося savelikan (19.06.2015 09:57:57)

Тема: Знайти в тексті співпадіння (preg_match_all)

Привіт всім) Поставив собі задачу викачати тести з сайту http://moz.org.ua/index.php?file=subjec … ;tema_id=1
Там по одному запитанню на сторінку, а я намагаюся черех PHP викачати їх щоб не просто копіювати)
Для цього я одержую сторінку і намагаюся одержати всі URL тестових питань:

$text = file_get_contents("http://moz.org.ua/index.php?file=answer&spec_id=1&tema_id=1&aid=1");
preg_match_all("/Акушерство та гінекологія[.]{0,}/",$text,$result);
print_r($result);

І тут preg_match_all не працює =( Він повинен шукати посилання в такому тексті (уривок)

<BR><H2><A HREF='index.php?file=subject&spec_id=1'>1. Акушерство і гінекологія</A></H2><H3>1. <U><A HREF='index.php?file=subject&spec_id=1&tema_id=1'>"Акушерство та гінекологія"</A></U></H3><BR><U><B>Антенатальна смерть плоду означає смерть</B></U><BR> - плід масою 1000 г і менше [0]<BR>
- немовля вагою 2500 г і менше [0]<BR>
- плід при будь-якому терміні вагітності до пологів [0]<BR>
- плід масою 1000 г і більш до пологів [100]<BR>

<br />
           
<br />
    <pre>Атестація  лікарів  проводиться   з   метою   підвищення
відповідальності  за ефективність і якість роботи,  раціональнішої
розстановки  кадрів   фахівців   з   урахуванням   їх  професійної
майстерності, досвіду та складності виконуваних робіт. Атестація є
важливою  формою   морального   та   матеріального   стимулювання,
спрямована  на  удосконалення діяльності закладів охорони здоров'я
щодо подальшого поліпшення надання медичної допомоги населенню.

<div id="DIV_DA_10883">Загружается, подождите...</div>

Чи могли б ви допомогти у формуванні регулярного виразу для пошуку запитань?

Тобто, звідси треба витягнути

<B>Антенатальна смерть плоду означає смерть</B></U><BR> - плід масою 1000 г і менше [0]<BR>
- немовля вагою 2500 г і менше [0]<BR>
- плід при будь-якому терміні вагітності до пологів [0]<BR>
- плід масою 1000 г і більш до пологів [100]<BR>

2

Re: Знайти в тексті співпадіння (preg_match_all)

Те що ви описали скоріш за все потрібно брати по такій логіці:

!<b>(.*)<BR>\s*<br/>\s*!iUu

для даних цілей я б рекомендував вам вивчити xpath це дуже і дуже кльова штука для парсингу html/xml документів

3

Re: Знайти в тексті співпадіння (preg_match_all)

Дякую