- Автор темы
- #1
Здравствуйте.
Пишу регулярку для разбора сайта
Вот только пытаюсь запустить на сервере, в итоге пустой массив. Проверяю на сайте
Есть такой еще вариант
, он работает, но один из столбцов таблицы может быть 2х видов, поэтому добавил в регулярку
, но работать отказывается.
Первый вариант:
Второй вариант:
Пишу регулярку для разбора сайта
Для просмотра скрытого содержимого вы должны войти или зарегистрироваться.
PHP:
preg_match_all('`<tr id="[^"]+">\s*<td>\s*<a [^>]+>.+?</a>\s*</td>\s*<td>\s*.*?<br />\s*<a [^>]+href="([^"]+)">\s*([^<]+)</a>\s*</td>\s*<td>(.*)[^]+<br[^>]+>(<b style[^<]+</b>\s*|\s*)</td>\s*\s*<td>([^<]+)</td>\s*<td>([^<]+)</td>\s*<td>[^<+]*</td>\s*<td>[^<]+</td>\s*<td>([^<]+)</td>\s*<td>([^<]+)</td>`si', $res_page, $customers)
Для просмотра скрытого содержимого вы должны войти или зарегистрироваться.
, работает как часы.Есть такой еще вариант
PHP:
preg_match_all('`<tr id="[^"]+">\s*<td>\s*<a [^>]+>.+?</a>\s*</td>\s*<td>\s*.*?<br />\s*<a [^>]+href="([^"]+)">\s*([^<]+)</a>\s*</td>\s*<td>(.*?)\s*<[^<]+?>.*\s*<[^<]+?>\s*</td>\s*<td>([^<]+)</td>\s*<td>([^<]+)</td>\s*<td>[^<+]*</td>\s*<td>[^<]+</td>\s*<td>([^<]+)</td>\s*<td>([^<]+)</td>`si', $res_page, $customers)
PHP:
'(<b style[^<]+</b>\s*|\s*)'
Первый вариант:
Код:
<td> ГОСУДАРСТВЕННОЕ УЧРЕЖДЕНИЕ ЗДРАВООХРАНЕНИЯ ГОРОДА МОСКВЫ ГОРОДСКАЯ КЛИНИЧЕСКАЯ БОЛЬНИЦА № 13 ДЕПАРТАМЕНТА ЗДРАВООХРАНЕНИЯ Г.МОСКВЫ
<br /><b>торги проводит государственный заказчик</b>
<br /><b style="color: Red;"> заказ размещается среди субъектов малого предпринимательства </b>
</td>
Код:
<td> ГОСУДАРСТВЕННОЕ УЧРЕЖДЕНИЕ УПРАВА ЛОСИНООСТРОВСКОГО РАЙОНА ГОРОДА МОСКВЫ
<br /><b>торги проводит государственный заказчик</b>
<br />
</td>