Sto cercando di far seguire a curl un reindirizzamento ma non riesco a farlo funzionare correttamente. Ho una stringa che voglio inviare come parametro GET a un server e ottenere l'URL risultante.Come posso trovare dove sarò reindirizzato usando cURL?
Esempio:
String = Folletto Vermin
URL = www.wowhead.com/search?q=Kobold+Worker
Se si va a tale URL essa ti reindirizzerà a "www.wowhead.com/npc=257". Voglio curl per restituire questo URL al mio codice PHP in modo da poter estrarre il "npc = 257" e usarlo.
codice attuale:
function npcID($name) {
$urltopost = "http://www.wowhead.com/search?q=" . $name;
$ch = curl_init();
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1");
curl_setopt($ch, CURLOPT_URL, $urltopost);
curl_setopt($ch, CURLOPT_REFERER, "http://www.wowhead.com");
curl_setopt($ch, CURLOPT_HTTPHEADER, Array("Content-Type:application/x-www-form-urlencoded"));
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
return curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);
}
Questo però torna www.wowhead.com/search?q=Kobold+Worker e non www.wowhead.com/npc=257.
Sospetto che PHP stia tornando prima che si verifichi il reindirizzamento esterno. Come posso risolvere questo?
Questa è una delle principali domande per "curl follow reindirizza". Per seguire automaticamente i reindirizzamenti usando il comando 'curl', passa il flag' -L' o '--location'. Per esempio. 'arricciatura -L http: // example.com /' –