Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Помогите написать регулярное выражение
Форумы портала PHP.SU » » Вопросы новичков » Помогите написать регулярное выражение

Страниц (1): [1]
 

1. event - 15 Сентября, 2013 - 14:22:55 - перейти к сообщению
Ребят, помогите написать регулярку. Есть такой кусок
CODE (html):
скопировать код в буфер обмена
  1. <td rowspan="6"><a href="http://osvita.ua/vnz/guide/search-17-0-0-60-0.html <b>(эта ссылка каждый раз разная, ее парсить ну нужно)</b>" target="_blank">Педагогічна освіта</a></td>


Нужно спарсить все что между <a ...></a>

Пробую так: preg_match("#.html\" target=\"_blank\">(.*)</a></td>#", $page, $test);, но не получается так как нужно.
2. EuGen - 15 Сентября, 2013 - 14:39:39 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. preg_match_all('/\<a\s+href\s*\=\s*"[^"]*"\s+target\s*\=\s*"_blank"\s*\>(.*?)\<\/a\>/', $page, $rgMatches);

?
3. event - 15 Сентября, 2013 - 15:24:59 - перейти к сообщению
EuGen, тут немного передумался функционал, а как тогда здесь спарсить:
CODE (html):
скопировать код в буфер обмена
  1. <td rowspan="ТУТ МОЖЕТ БЫТЬ РАЗНАЯ ЦИФРА"><a href="ТУТ МОЖЕТ БЫТЬ РАЗНАЯ ССЫЛКА" target="_blank">ЗДЕСЬ</a></td><td>ЗДЕСЬ</td><td>ЗДЕСЬ</td>


Заранее спасибо.
4. EuGen - 15 Сентября, 2013 - 15:29:04 - перейти к сообщению
Что имеется ввиду "ЗДЕСЬ"? То, что нужно получить?
5. event - 15 Сентября, 2013 - 16:48:33 - перейти к сообщению
Верно! Подмигивание
6. EuGen - 15 Сентября, 2013 - 16:56:46 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. preg_match_all('/\<td\s+rowspan\s*\=\s*"([^"]*)"\>\s*\<a\s+href\s*\=\s*"([^"]*)"\s+target\s*\=\s*"_blank"\s*\>(.*?)\<\/a\>\s*\<\/td\>\s*\<td\>(.*?)\<\/td\>\s*\<td\>(.*?)\<\/td\>/', $page, $rgMatches);
  2. //var_dump($rgMatches);

?
7. event - 15 Сентября, 2013 - 23:16:37 - перейти к сообщению
Работает, спасибо.

Не подскажешь как еще это все грамотно через foreach вывести? Улыбка
8. event - 28 Сентября, 2013 - 19:50:31 - перейти к сообщению
Пробую так:
PHP:
скопировать код в буфер обмена
  1. $page = file_get_contents("http://192.68.0.35/1.html");
  2.  
  3. preg_match_all('/\<td\s+rowspan\s*\=\s*"([^"]*)"\>\s*\<a\s+href\s*\=\s*"([^"]*)"\s+target\s*\=\s*"_blank"\s*\>(.*?)\<\/a\>\s*\<\/td\>\s*\<td\>(.*?)\<\/td\>\s*\<td\>(.*?)\<\/td\>/', $page, $a);
  4.  
  5. foreach($a as $key => $value) {
  6.     echo $key . "<br />";
  7. }
  8.  


Выводит только:

А должно вывести много циферок, почему так?

Файл 1.html прикрепляю.

 

Powered by ExBB FM 1.0 RC1