The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"выдрать адреса ссылок"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы WEB технологии (Public)
Изначальное сообщение [ Отслеживать ]

"выдрать адреса ссылок"  
Сообщение от mishgan (ok) on 08-Фев-08, 11:39 
Пытаюсь выдрать со странички адреса ссылок делаю так...
preg_match_all('/href[ ]*=[ ]*[\'"`]{0,1}(.+)[\'"` ]{0,1}.*>/', $str, $ara,PREG_PATTERN_ORDER);
потом обрабатываю массив $ara[1]. Но чтото не работает. Если мы имеем например ссылки
<a href="index.php" >Главная </a> ..... <a href="news.php" >Новости</a> и т.д.
Короче скрипт выдает такую строчку "index.php' >Главная</a><b></td></"
Коче не дает нужного результата
Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "выдрать адреса ссылок"  
Сообщение от angra (ok) on 09-Фев-08, 02:28 
Пых и регексы, выглядит кошмарно. И после такого некоторые не понимают в чем преимущество перла в этой области.
Не знаю есть ли туториалы для пыха по регексам, но могу порекомедовать man perlre и "Mastering regular expressions" O'Reilly. Особое внимание обратить на понятие жадности(greedy) и вообще на механику регексов. В простом издложении на вашем примере
1. .+ захватывает все до конца строки.
2. проверяется совпадение части регекса после .+
3. если совпадения не произошло, то .+ отдает один символ и идет возврат к пункту 2, до тех пор пока в .+ есть хоть один символ(ибо +, а не *)
Не знаю поддерживается ли в пыхе возможность обрезать жадность, но в перле это делается добавлением ? после квантифаера. То есть вместо .+ ставим .+?. Кроме того обычная практика вместо "." использовать класс ограничтителей, например вместо .+ поставить [^'">]+
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру