Continuación de los ejemplos... Seguir redireccionamientos con file_get_contents() Nota: El
file_get_contents() sigue automáticamente las redirecciones (header("Location: redireccion.php")).
Código PHP:
Ver original<?php
$url = 'http://www.example.com/redirector.php';
?>
Seguir redireccionamientos con cURL Seguir redireccionamientos con HTTP_Client Nota: HTTP_request no sigue las redirecciones, pero el módulo de PEAR
HTTP_Client logra lo que queremos
Código PHP:
Ver original<?php
require_once 'HTTP/Client.php';
$client = new HTTP_Client();
$client->get($url);
$response = $client->currentResponse();
echo $response['body'];
?>
Puede que si el servidor está en safe_mode te dé un error, para más información de como solventar este problema leer el siguiente aporte
http://www.forosdelweb.com/f18/aport...bit-ly-808160/ (por
Triby).
Como hemos indicado anteriormente el
file_get_contents() sigue automáticamente las redirecciones (header("Location: redireccion.php")). A partir de PHP 5.0.0,
file_get_contents() y
fopen() nos da unas opciones especificas acerca de como obtener el stream. En PHP 5.1.0 y posteriores, una de esas opciones es max_redirects el número máximo de redirecciones a seguir. Si indicamos el max_redirects a 0 o 1, solo hace una solicitud.
El max_redirects realmente no indica el número de redirecciones deben seguirse, pero el número máximo de solicitudes que deben efectuarse en el momento siguiente a la cadena de redireccionamiento. Es decir, un valor de 1 le dice a PHP que al menos una solicitud debe seguir, y no un redireccionamiento. Un valor de 2 le dice a PHP para que al menos de 2 solicitudes deben seguir y no más de 1 redireccionamiento. (Un valor de 0, sin embargo, se comporta como un valor de 1, PHP hace sólo 1 solicitud.)
No seguir redirecciones con file_get_contents()
Código PHP:
Ver original<?php
$url = 'http://www.example.com/redirector.php';
$options = array('max_redirects' => 1 ); ?>
No seguir redirecciones con cURL Nota: Para no seguir las redirecciones no uses
CURLOPT_FOLLOWLOCATION No seguir redirecciones con HTTP_Request Nota: HTTP_Request no sigue redirecciones
Código PHP:
Ver original<?php
require_once 'HTTP/Request.php';
$r = new HTTP_Request('http://www.example.com/redirector.php'); $r->sendRequest();
echo $r->getResponseBody();
?>
Limitar a 2 redirecciones con file_get_contents
Código PHP:
Ver original<?php
$url = 'http://www.example.com/redirector.php';
$options = array('max_redirects' => 3 );
Limitar a 2 redirecciones con cURL