Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Грабинг ссылок


Автор: mitris 20.3.2008, 09:11
Нужна помощь....
вот есть код
Код


<?php
$file_name = "http://domain.com/page.html";
$fp = fopen($file_name, "r");
while(!feof($fp))
{
    $content[] = fgets($fp, 10240);
}
?>


С помощью этого кода граблю всю страницу в массив
и на странице есть определенные ссылки, типа http://domain.com/file1.mp3, http://domain.com/file2.avi и тд.
вот мне нужно сграбить в масив, или еще куда-то все ссылки, на пример на mp3 файлы.

помогите.....

Автор: Canarat 20.3.2008, 11:02
mitris
Про регулярные выражения знаем? Если нет - http://de3.php.net/pcre + огромная куча руководств в Google. Там же можно найти готовые регулярные выражения для ссылок. Используем preg_match и элементарные знания о работе и структуре массивов - и задача будет решена в 5-10 минут.

Автор: Хрипа 20.3.2008, 11:10
Делается это вот так:
Код

preg_match_all("/(http.\/\/|www.).{0,}\.(\/{0,}|.{0,})(php|html|htm|phtml|cgi|pl)/i",$str,$mat)

на выходе переменная $mat будет содержаить двух мерный массив совпаденый и находок, дальше думаю с масивом всё понятно

Добавлено @ 11:13
Грабить в массив нет смысла.
При парсе 20 страниц твой парсер будет работать ГОД
Быстрей будет если будеш грабить в переменую через .=

Автор: Canarat 20.3.2008, 11:24
Хрипа, а то, что с педагогической точки зрения человеку полезнее самому разобраться в проблеме?
Тем более

Цитата(Хрипа @  20.3.2008,  11:10 Найти цитируемый пост)
Грабить в массив нет смысла.
При парсе 20 страниц твой парсер будет работать ГОД
Быстрей будет если будеш грабить в переменую через .=

Это - бред.

Автор: Валерия 23.10.2008, 15:29
Цитата(mitris @  20.3.2008,  09:11 Найти цитируемый пост)
<?php
$file_name = "http://domain.com/page.html";
$fp = fopen($file_name, "r");
while(!feof($fp)){
    $content[] = fgets($fp, 10240);
}
?>

А не проще
Код

$content = file("http://domain.com/page.html");

?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)