Cómo detectar 404 al usar file_get_contents

  • Autor Autor iniciopublic
  • Fecha de inicio Fecha de inicio
iniciopublic

iniciopublic

Préstamo impago
1
Ómicron
Verificación en dos pasos activada
Verificado por Whatsapp
Suscripción a IA
¿Cómo puedo procesar un código de respuesta 404 en esta situación ... es posible? ,si la página buscada (url) no se encuentra y me da un error 404...
este es el código que estoy usando
PHP:
<?php
for($pagina=50;$pagina<60;$pagina++){

$data = file_get_contents("https://sitioweb.com/?p=".$pagina);

 if ( preg_match('|<h2 style="text-align: center;">(.*?)</h2>|is' , $data , $cap ) )
{
    
    echo '<b>'.$cap[1] .'</b><br>';
}
}

?>
 
proba usando PHP: get_headers - Manual si entendi tu consulta.
te devuelve el estado de la cabecera de una url, en caso que no exista te devolveria 404.
 
PHP:
 <?php

function get_error404($url) 
{
$handle = curl_init($url);
curl_setopt($handle,  CURLOPT_RETURNTRANSFER, TRUE);
$response = curl_exec($handle);
$httpCode = curl_getinfo($handle, CURLINFO_HTTP_CODE);
if($httpCode == 404) {
   return false;
}
else
{
return true;
}
curl_close($handle);
}

for($pagina=50;$pagina<60;$pagina++){

$url_pagina="https://sitioweb.com/?p=".$pagina;

if (get_error404($url_pagina))
{

$data = @file_get_contents($url_pagina);

 if ( preg_match('|<h2 style="text-align: center;">(.*?)</h2>|is' , $data , $cap ) )
{
    
    echo '<b>'.$cap[1] .'</b><br>';
}
}
}
?>
 
PHP:
function get_http_response_code($url) {
    $headers = get_headers($url);
    return substr($headers[0], 9, 3);
}
if(get_http_response_code('http://somenotrealurl.com/notrealpage') != "200"){
    echo "error";
}else{
    file_get_contents('http://somenotrealurl.com/notrealpage');
}
 
Atrás
Arriba