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]   

> Без описания
andreizanik
Отправлено: 16 Апреля, 2013 - 15:55:56
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Апр. 2013  


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




Здравствуйте.
Есть строка, в которой есть несколько ссылок такого вида
CODE (html):
скопировать код в буфер обмена
  1. <a name="site.ru" target="_blank" onclick="cl(this)" href="http://www.site.ru/">Сайт Site.ru</a>

Мне нужно достать из этой строки все урлы http://www[dot]site[dot]ru/
Использую функцию preg_match_all() , но к сожалению в регулярках я не силен, поэтому не могу написать правильную. Помогите пожалуйста.
Заранее благодарен.
 
 Top
nerv
Отправлено: 16 Апреля, 2013 - 16:00:53
Post Id



Посетитель


Покинул форум
Сообщений всего: 407
Дата рег-ции: Февр. 2013  
Откуда: Россия


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




ну и зачем тут регулярка?

если очень хочется

(Отредактировано автором: 16 Апреля, 2013 - 16:03:16)



-----
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
 
 Top
andreizanik
Отправлено: 16 Апреля, 2013 - 16:02:00
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Апр. 2013  


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




nerv А как еще можно из кучи ненужного текста достать именно те урлы которые встречаются в
CODE (html):
скопировать код в буфер обмена
  1. <a name="site.ru" target="_blank" onclick="cl(this)" href="http://www.site.ru/">Сайт Site.ru</a>


Регулярка, которую вы предлагаете, будет забирать и обычные урлы, не стоящие в вышеуказанно конструкции.

(Отредактировано автором: 16 Апреля, 2013 - 16:05:31)

 
 Top
nerv
Отправлено: 16 Апреля, 2013 - 16:11:00
Post Id



Посетитель


Покинул форум
Сообщений всего: 407
Дата рег-ции: Февр. 2013  
Откуда: Россия


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




andreizanik пишет:
Регулярка, которую вы предлагаете

ну отфильтруй их потом, в чем проблема?


-----
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
 
 Top
andreizanik
Отправлено: 16 Апреля, 2013 - 16:13:56
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Апр. 2013  


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




nerv пишет:
ну отфильтруй их потом, в чем проблема?

И как я в массиве совершенно разных урлов найду те которые нужны мне?
(Добавление)
Еще прошу помочь с регуляркой для поиска информации заключенной в
CODE (html):
скопировать код в буфер обмена
  1. <td align="right" width="70">ИНФОРМАЦИЯ</td>
 
 Top
esterio
Отправлено: 16 Апреля, 2013 - 16:32:56
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


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




PHP:
скопировать код в буфер обмена
  1. preg_match_all('/<a name="site\.ru" target="_blank" onclick="cl\(this\)" href="(.+?)">.+?<\/a>/is', $html, $matches);
 
 Top
nerv
Отправлено: 16 Апреля, 2013 - 16:56:12
Post Id



Посетитель


Покинул форум
Сообщений всего: 407
Дата рег-ции: Февр. 2013  
Откуда: Россия


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




andreizanik пишет:
А как еще можно из кучи ненужного текста достать именно те урлы

например, так
PHP:
скопировать код в буфер обмена
  1. $doc = new DOMDocument();
  2.  
  3. $doc->loadHTML( '<a name="site.ru" target="_blank" onclick="cl(this)" href="http://www.site.ru/">Сайт Site.ru</a>' );
  4.  
  5. echo $doc->getElementsByTagName( 'a' )->item( 0 )->getAttribute( 'href' );


andreizanik пишет:
И как я в массиве совершенно разных урлов найду

также как и в
andreizanik пишет:
куче ненужного текста


-----
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
 
 Top
andreizanik
Отправлено: 16 Апреля, 2013 - 16:58:03
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Апр. 2013  


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




esterio а как site\.ru заменить так чтобы там мог стоять любой домен?
 
 Top
nerv
Отправлено: 16 Апреля, 2013 - 17:00:41
Post Id



Посетитель


Покинул форум
Сообщений всего: 407
Дата рег-ции: Февр. 2013  
Откуда: Россия


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




andreizanik пишет:
а как site\.ru заменить так чтобы там мог стоять любой домен?

кажется, вам сюда http://forum.php.su/forums.php?forum=60


-----
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
 
 Top
esterio
Отправлено: 16 Апреля, 2013 - 17:01:26
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


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




PHP:
скопировать код в буфер обмена
  1. preg_match_all('/<a name=".+?" target="_blank" onclick="cl\(this\)" href="(.+?)">.+?<\/a>/is', $html, $matches);
 
 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