Ich versuche, Curl einer Umleitung folgen zu lassen, aber ich kriege es nicht ganz hin, dass es funktioniert. Ich habe eine Zeichenfolge, die ich als GET-Parameter an einen Server senden und die resultierende URL erhalten möchten.
Beispiel:
Zeichenfolge = Kobold Ungeziefer
Url = www.wowhead.com/search?q=Kobold+Arbeiter
Wenn man diese URL aufruft, wird man zu "www.wowhead.com/npc=257" weitergeleitet. Ich möchte, dass curl diese URL an meinen PHP-Code zurückgibt, so dass ich die "npc=257" extrahieren und verwenden kann.
Aktueller Code:
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);
}
Dies ergibt jedoch www.wowhead.com/search?q=Kobold+Arbeiter und nicht www.wowhead.com/npc=257 .
Ich vermute, dass PHP zurückkehrt, bevor der externe Redirect stattfindet. Wie kann ich das beheben?