Si vous souhaitez cURL suivre rediriger les en-têtes des réponses qu'il reçoit, vous devez définir cette option avec:
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
Vous pouvez également limiter le nombre de réoriente il suit en utilisant:
curl_setopt($ch, CURLOPT_MAXREDIRS, 3);
donc vous devriez utiliser quelque chose comme ceci:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://track.abc.com/?affid=1234");
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($ch, CURLOPT_MAXREDIRS, 3);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$data = curl_exec($ch);
Edit: question n'a pas été tout à fait claire, mais le commentaire ci-dessous, si vous voulez obtenir l'emplacement de redirection, vous avez besoin pour les en-têtes de cURL et les analyser pour l'en-tête Lieu:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://track.abc.com/?affid=1234");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, true);
$data = curl_exec($ch);
Cette volonté vous donne les en-têtes renvoyés par le serveur dans $ data, il suffit de les analyser pour obtenir l'en-tête de l'emplacement et vous obtiendrez votre résultat. This question vous montre comment faire cela.
utiliser juste CURLOPT_FOLLOWLOCATION et boucle continuera à la page redirigée – Svetoslav