Используя cURL, выполните запрос HTTP HEAD для проверки заголовков, затем, если он действителен (статус 200), выполните полный запрос HTTP GET.
Базовая опция, которую вы должны установить - CURLOPT_NOBODY
, которая изменяет запрашиваемый тип на HEAD
curl_setopt($ch, CURLOPT_NOBODY, true);
Затем после выполнения запроса вам необходимо проверить статус возврата, который можно сделать с помощью curl_getinfo ()
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);