j'essaye désespérement de lire une page web
(fopen("http://www.example.com", 'r') sans que php ne gère les
redirections.
Je m'explique, si le site web renvoie une page web avec un header
"HTTP/1.0 302", la page web est redirigée, le header contenant
la nouvelle adresse.
php étant extrémement bien codé (:)) il gère automatiquement
ce cas de figure, et renvoie la bonne page (après avoir lu le
nouveau fichier à la nouvelle adresse). Mais dans ce cas là,
impossible d'obtenir la nouvelle adresse.
Bref comment faire en sorte que php ne gère pas les redirection
et renvoie toute la page originale (avec le header "HTTP/1.0 302"),
ou récupèrer l'adresse réelle / la nouvelle adresse après qu'il
est effectué la redirection?
- J'arrive bien à le faire en passant par un proxy:
$proxy_fp = fsockopen($proxy_name, $proxy_port);
fputs($proxy_fp, "GET $url HTTP/1.0\r\nHost: $proxy_name\r\n\r\n");
while(!feof($proxy_fp)) {$proxy_cont .= fread($proxy_fp,4096);}
fclose($proxy_fp);
Dans ce cas là "$proxy_cont" contient la page originale avec le header
(de redirection si il y a lieu).
- mais pas sans passer par un proxy (avec une connection direct à
internet):
file($url)
fopen($url)
...
php va toujours renvoyer la nouvelle page apres redirection, sauf que le header de la page originale est ajoutée en haut du résultat, donc pourra être traité plus tard.
-- Alex
Alex wrote:
Bonjour,
j'essaye désespérement de lire une page web
(fopen("http://www.example.com", 'r') sans que php ne gère les
redirections.
j'ai trouvé une réponse "partielle" qui fonctionne:
function get_url($url) {
$res = "";
$fp = fopen($url, 'r');
php va toujours renvoyer la nouvelle page apres redirection,
sauf que le header de la page originale est ajoutée en haut du résultat,
donc pourra être traité plus tard.
php va toujours renvoyer la nouvelle page apres redirection, sauf que le header de la page originale est ajoutée en haut du résultat, donc pourra être traité plus tard.
-- Alex
John GALLET
Bonjour,
j'essaye désespérement de lire une page web (fopen("http://www.example.com", 'r') sans que php ne gère les redirections. Essaie avec la lib curl, en particulier le paramètre
nouveau fichier à la nouvelle adresse). Mais dans ce cas là, impossible d'obtenir la nouvelle adresse. Pas sûr, vérifie aussi dans la lib curl.
Il y a CURLOPT_HEADER qui permet de récupérer ledit header dans l'output disent-ils donc probablement de trouver la destination.
HTH
JG
Bonjour,
j'essaye désespérement de lire une page web
(fopen("http://www.example.com", 'r') sans que php ne gère les
redirections.
Essaie avec la lib curl, en particulier le paramètre
j'essaye désespérement de lire une page web (fopen("http://www.example.com", 'r') sans que php ne gère les redirections. Essaie avec la lib curl, en particulier le paramètre