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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Помогите написать регулярное выражение

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
event
Отправлено: 15 Сентября, 2013 - 14:22:55
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 542
Дата рег-ции: Май 2011  


Помог: 0 раз(а)




Ребят, помогите написать регулярку. Есть такой кусок
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);, но не получается так как нужно.
 
 Top
EuGen Администратор
Отправлено: 15 Сентября, 2013 - 14:39:39
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




PHP:
скопировать код в буфер обмена
  1. preg_match_all('/\<a\s+href\s*\=\s*"[^"]*"\s+target\s*\=\s*"_blank"\s*\>(.*?)\<\/a\>/', $page, $rgMatches);

?


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
event
Отправлено: 15 Сентября, 2013 - 15:24:59
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 542
Дата рег-ции: Май 2011  


Помог: 0 раз(а)




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


Заранее спасибо.

(Отредактировано автором: 15 Сентября, 2013 - 15:28:30)

 
 Top
EuGen Администратор
Отправлено: 15 Сентября, 2013 - 15:29:04
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Что имеется ввиду "ЗДЕСЬ"? То, что нужно получить?


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
event
Отправлено: 15 Сентября, 2013 - 16:48:33
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 542
Дата рег-ции: Май 2011  


Помог: 0 раз(а)




Верно! Подмигивание
 
 Top
EuGen Администратор
Отправлено: 15 Сентября, 2013 - 16:56:46
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




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);

?


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
event
Отправлено: 15 Сентября, 2013 - 23:16:37
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 542
Дата рег-ции: Май 2011  


Помог: 0 раз(а)




Работает, спасибо.

Не подскажешь как еще это все грамотно через foreach вывести? Улыбка
 
 Top
event
Отправлено: 28 Сентября, 2013 - 19:50:31
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 542
Дата рег-ции: Май 2011  


Помог: 0 раз(а)




Пробую так:
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.  


Выводит только:
    0
    1
    2
    3
    4
    5


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

Файл 1.html прикрепляю.
Скачать файл: 1.html
Скачан раз: 38
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB