Проверить рабочая ссылка на php
На одном сайте нужно было проверять ссылку перед скачиванием, рабочая ссылка или нет. Делаем через получения заголовков от страницы. Если не битая — качаем файл, битая — ничего не делаем или выводим что-то (ну или редиректим).
Получаем заголовок, проверяем на 404 ошибку:
function is_valid_uri($uri) {
$hds = @get_headers($uri);
return !$hds || (strpos($hds[0], ' 404 ') !== false ) ? 'Битая ссылка' : 'Ссылка работает';
} Если 404 — то «битая», иначе рабочая. Нам нужно было для скачивания файла, без редиректа на другую страницу. Делали без ajax. Если не битая, тогда задаем тип файла, и качаем:
if (is_valid_uri($download_file) != 'Битая ссылка') {
header('Content-Type: application/vnd.android.package-archive');
header('Content-Disposition: attachment; filename="file.apk"');
readfile($download_file);
} else {
header('HTTP/1.0 204 No Content');
exit;
}
Если ссылка «битая» (404 ошибка = не существует), тогда ничего не делаем (задали в заголовке).
В вашем случае, наверняка, нужно просто выводить что-то на экране. Можно упростить код и вместо текста писать 1 или 0.
<?php
function is_valid_uri($uri) {
$hds = @get_headers($uri);
return !$hds || (strpos($hds[0], ' 404 ') !== false ) ? '1' : '0';
}
if (is_valid_uri($download_file) != '1') {
echo "Ссылка рабочая.";
} else {
echo "Ссылка битая, проверьте.";
}
?>
Очень много разговоров в последнее время за токен NOT. Много бирж будут делать листинг токена,…
Телеграм недавно запустил возможность стейкать (замораживать) USDT и получать за это их валюту TON. Очень…
Биржа криптовалют Binance проводит сейчас промо-акцию: новым пользователям дают ваучеры в сумме 110 долларов. Деньги…
Самый главный момент в работе с youtube - это получить ключ api через консоль разработчика…
Арендую сервер для небольшого проекта на python. И вот приходит мне уведомление, что за сутки…
Тестирую одну схему, и нужно на много видео наложить watermark. Решил делать через Python 3,…