pour obtenir la dernière url redirigée dans curl de php
Salut, je sais que c'est une très sujet commun sur StackOverFlow.
J'ai déjà passé toute ma semaine pour le chercher.
J'ai une url : abc.com/default.asp?strSearch=19875379
cette nouvelle rediriger vers cette url: abc.com/default.asp?catid={170D4F36-39F9-4C48-88EB-CFC8DDF1F531}&details_type=1&itemid={49F6A281-8735-4B74-A170-B6110AF6CC2D}
J'ai fait mon effort pour obtenir la valeur finale de l'url dans mon code php à l'aide de Curl, mais ne peut pas le faire.
voici mon code:
<?php
$name="19875379";
$url = "http://www.ikea.co.il/default.asp?strSearch=".$name;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$a = curl_exec($ch);
curl_close( $ch );
//the returned headers
$headers = explode("\n",$a);
//if there is no redirection this will be the final url
$redir = $url;
//loop through the headers and check for a Location: str
$j = count($headers);
for($i = 0; $i < $j; $i++){
//if we find the Location header strip it and fill the redir var
//print_r($headers);
if(strpos($headers[$i],"Location:") !== false){
$redir = trim(str_replace("Location:","",$headers[$i]));
break;
}
}
//do whatever you want with the result
echo $redir;
?>
il me donne l'url "abc.com/default.asp?strSearch=19875379" au lieu de cette url "abc.com/default.asp?catid={170D4F36-39F9-4C48-88EB-CFC8DDF1F531}&details_type=1&itemid={49F6A281-8735-4B74-A170-B6110AF6CC2D}"
Merci d'avance pour votre aide 🙂
Vous devez vous connecter pour publier un commentaire.
Merci à vous tous de m'aider dans ma situation.
En fait, je veux développer un racloir en php pour le site web d'ikea utilisé en Israël (en hébreu).
Après avoir mis beaucoup d'heures je reconnais qu'il n'existe pas de côté de serveur de redirection d'url que j'ai mis pour obtenir l'url redirigée. Il peut être redirection javascript.
J'ai mis en œuvre le code ci-dessous et cela fonctionne pour moi.
Merci encore à tout le monde 🙂
Tout d'abord, je ne vois pas de redirection de tout, j'ai donné une course sur votre code. De toute façon, voici quelques choses que vous pouvez faire pour cela(en gardant votre approche intact):
Tout d'abord, assurez-vous que l'en-tête sera retourné à votre curl de sortie(dans ce cas, à $a).
Maintenant, sépare seulement la partie en-tête de l'ensemble de la réponse http.
Exploser la chaîne d'en-tête en-têtes de tableau.
Vous pouvez utiliser
curl_getinfo()
...http://php.net/manual/en/function.curl-getinfo.php