PHP программирование →  Парсим линки на PHP

Такое всегда должно быть под рукой:
$url = "http://artlebedev.kiev.ua/";
$input = @file_get_contents($url) or die('Could not access file: ' . $url);
$regexp = "<a\s[^>]*href=(\"??)([^\" >]*?)\\1[^>]*>(.*)<\/a>";
if(preg_match_all("/$regexp/siU", $input, $matches)) {
   foreach($matches as $match) {
      # $match[2] = link address
      # $match[3] = link text
   }
}


have fun:)
1


Вставка изображения
Файл:
Ссылка:
Выравнивание:
Описание:
комментарии(5): 
DIVorNotDIV 3 августа 2009, 16:59 #
1 
Я конечно не гуру в PCRE, но зачем использовать *? когда применен модификатор U… а в [^«>] — »>« по-мойму лишнее. Вот мой вариант '!<a.+href=»([^«]+)»>(.+)!Ui'.
PS: сильно не пинать
admin 3 августа 2009, 17:24 #
0 
используйте пожалуйста тег code для сохранения читабельного кода, а то ни хера не понятно с вашими кавычками
r3verser 4 августа 2009, 19:42 #
1 
вторая строка — or die('Could not access file: $url');
чтобы был вывод значения переменной $url нужно использовать «» вместо '', либо '' .$url. '' :)
igorok 5 августа 2009, 09:46 #
1 
согласен, был не прав:)
поправил
r3verser 4 августа 2009, 19:44 #
1 
где «» — есть двойные кавычки, фильтры ваши что-то накосячили )

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии. Авторизуйтесь, пожалуйста, или зарегистрируйтесь, если не зарегистрированы.