<?php
header('Access-Control-Allow-Origin: *'); // Разрешаем запросы с любых доменов
header('Content-Type: text/html; charset=utf-8'); // Указываем тип документа и кодировку
// Включаем отображение ошибок:
ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
// Если мы получили GET-запрос:
if ($_SERVER['REQUEST_METHOD'] == 'GET') {
// Если переменная со ссылкой существует и не пуста:
if (isset($_GET['url']) and !empty($_GET['url'])) {
check(); // Запускаем функцию для проверки действительности ссылки
}
// Если переменная со ссылкой не существует:
else {
echo 'Отсутсвует переменная url со ссылкой для проверки!';
}
}
// Если мы получили НЕ GET-запрос, а допустим POST-запрос или любой другой:
else {
echo 'Метод не поддерживается!';
}
// Функция для проверки переданной ссылки:
function check() {
// Определяем параметры запроса:
$url = $_GET['url']; // Получаем адрес запроса
// Создаём новый сеанс:
$curl = curl_init();
// Указываем адрес целевой страницы:
curl_setopt($curl, CURLOPT_URL, $url);
// Устанавливаем таймаут для запроса в 10 секунд:
curl_setopt($curl, CURLOPT_TIMEOUT, 10);
// Устанавливаем User-Agent чтобы имитировать браузер:
$headers = [ 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36' ];
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
// Разрешаем переадресацию:
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
// Запрещаем прямой вывод результата запроса:
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
// Делаем сам запрос:
$result = curl_exec($curl);
// Завершаем сеанс:
curl_close($curl);
// Смотрим, есть ли ответ:
if ($result == '') {
echo 'Передана не рабочая ссылка!'; // Выводим ошибку, если ответ пустой
}
else {
header('Location: ' . $url); // Переадресуем, если ответ не пустой
}
}