[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проверка битых ссылок на mp3
Leamm
Пишу скрипт проверки битых ссылок на mp3 файлы. В смысле, при нажатии на такую ссылку должен непосредственно появляться диалог сохранения файла. (без всяких страниц скачивания)
Проверку делаю с помощью curl. Читаю в заголовке тип контента (должен быть audio/mpeg).
Вот такая функция:
	
function check_url($url)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_VERBOSE, 0);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_NOBODY, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.0; ru; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 ( .NET CLR 3.5.30729)');
$headers = curl_exec($ch);
curl_close($ch);
//echo '<br />'.$headers.'<br />';
//Проверяем заголовок

if(!empty($headers) && (strpos($headers, "audio/mpeg") !== false))
return true;
else
return
false;
}


Эти ссылки нормально проходят проверку:
http://mufflersbar.com/media/Pink_Funhouse...t_goes_down.mp3
http://www.minneapolisfuckingrocks.com/mp3...ockthatbody.mp3

Но есть такие ссылки:
http://dl.dropbox.com/u/2882741/07%20%20Mu...0MK%20Ultra.mp3
http://mp3zakaz.ru/mp3/02-the_killers-huma...mp3zakaz.ru.mp3
http://media.damochka.ru/music/93/09/0001.mp3
они не битые, но помечаются как битые, т.к. заголовок либо пустой(не пойму по какой причине), либо не содержит в поле Content-Type: значения audio/mpeg.

Подскажите, может какую опцию курла не указал, чтобы функция работала для всех ссылок.
Спасибо за отзывы!




Спустя 4 минуты, 5 секунд (11.08.2010 - 16:09) Basili4 написал(а):
ну вы правильно жеж причину выявили
Цитата
заголовок либо пустой(не пойму по какой причине), либо не содержит в поле Content-Type: значения audio/mpeg.

ИМХО менять алгоритм проверки

Спустя 20 минут, 34 секунды (11.08.2010 - 16:30) Leamm написал(а):
А доработать это алгоритм никак нельзя?

Если нет, я думаю можно получать первые несколько байт файла и смотреть, mp3 или нет. Тогда тут вопрос, каким образом получать эти несколько байт?

Спустя 4 минуты, 40 секунд (11.08.2010 - 16:35) Basili4 написал(а):
file_get_contents

Спустя 55 минут, 56 секунд (11.08.2010 - 17:31) Nord написал(а):
Может лучше проверять битые ссылки на факт возращения ошибки 404?

Спустя 2 часа, 11 минут, 34 секунды (11.08.2010 - 19:42) Leamm написал(а):
Это не для всех ссылок подходит, например для файлового хостинга narod.ru, там скачивать можно только страницы файла.
И основная проблема в том, что иногда получаем пустой заголовок, хотя ссылка работает.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.