una redirigir redireccionar página para pagina index con codigo php redirect curl http-status-code-301

redireccionar - PHP CURL sigue redirigir para obtener el estado HTTP



redireccionar a una página con php (1)

establece CURLOPT_FOLLOWLOCATION en TRUE .

$opts = array(CURLOPT_RETURNTRANSFER => true, // do not output to browser CURLOPT_URL => $url, // set URL CURLOPT_NOBODY => true, // do a HEAD request only CURLOPT_FOLLOWLOCATION => true // follow location headers CURLOPT_TIMEOUT => $timeout); // set timeout

Si no está obligado a curl, también puede hacerlo con envoltorios HTTP estándar de PHP (que incluso puede ser curl y luego internamente). Código de ejemplo:

$url = ''http://example.com/''; $code = FALSE; $options[''http''] = array( ''method'' => "HEAD" ); $context = stream_context_create($options); $body = file_get_contents($url, NULL, $context); foreach($http_response_header as $header) { sscanf($header, ''HTTP/%*d.%*d %d'', $code); } echo "Status code (after all redirects): $code<br>/n";

Véase también HEAD primero con PHP Streams .

Una pregunta relacionada es ¿Cómo se puede verificar si existe un archivo remoto usando PHP? .

Creé la siguiente función PHP para el código HTTP de una página web.

function get_link_status($url, $timeout = 10) { $ch = curl_init(); // set cURL options $opts = array(CURLOPT_RETURNTRANSFER => true, // do not output to browser CURLOPT_URL => $url, // set URL CURLOPT_NOBODY => true, // do a HEAD request only CURLOPT_TIMEOUT => $timeout); // set timeout curl_setopt_array($ch, $opts); curl_exec($ch); // do it! $status = curl_getinfo($ch, CURLINFO_HTTP_CODE); // find HTTP status curl_close($ch); // close handle return $status; }

¿Cómo puedo modificar esta función para seguir los redireccionamientos 301 y 302 (posibilidad de múltiples redireccionamientos) y obtener el código de estado HTTP final?