Какую конструкцию мне необходимо реализовать, если я вызываю
file_get_contents($target)
где target - url страницы, а сервер присылает ошибку 404. Мне при условии появления ошибки 404 по этому адресу необходимо выполнить
file_get_contents($target)
для другого адреса через if/else.
Официальная документация говорит, что функция file_get_contents
Функция возвращает прочтенные данные или FALSE в случае возникновения ошибки.
Код ошибки можно узнать проанализировав массив $http_response_header
после вызова функции. Этот массив содержит все заголовки, пришедшие от сервера
Таким образом код у Вас должен быть таким
function getResponseCode($headers) {
.....
}
$content = file_get_contents($target1);
if (
$content === false && // === вместо ==, чтобы отличить '' от false
getResponseCode($http_response_header) === 404
)
$content = file_get_contents($target2);
Функция get_headers() возвращает массив, в первом элементе которого содержится код ответа сервера. Я написал пример получения этого кода и последующих действий, в зависимости от полученного кода:
// Первая ссылка
$target = 'http://www.example.com';
// Если ошибка, перезаписать ссылку в $target
get_status($target) ?: $target = 'http://вторая ссылка';
// Получить контент
$content = file_get_contents($target);
var_dump($content);
function get_status($url) {
preg_match('~\d{3}~', get_headers($url)[0], $http);
return ($http[0] < 400);
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Ребята нужно сделать что бы только CronJob мог использовать файлы в папке CRON, больше никто, как осуществить?
Почему оно работает? Слышал об предварительном объявлении, но это явно другой случайИли в чистом виде UB?
Пытаюсь написать программу ,которая управляет некоторым количеством процессов и следит за ними,а конкретно,если убиваем процесс,то возобновляем...