Chcę przerobić pewnien kod (nie jest on mój) używający cURLa, tak aby nie używał CURLOPT_FOLLOWLOCATION. W internecie znalazłem kilka funkcji które mają to zrobić, jednak przy użyciu ich kod pokazuje
{"status":{"http_code":0},"contents":null}
a poprawny wynik powinien być taki:
{"status":{"http_code":200},"contents":"HTTP\/1.0 200 OK\r\nServer: aris\r\nExpires: Tue, 17 Jul 2012 10:17:46 GMT\r\nLast-Modified: Tue, 17 Jul 2012 10:17:46 GMT\r\nPragma: no-cache\r\nCache-Control: no-cache\r\nContent-type: text\/html; charset=UTF-8\r\nSet itd.......................
Postanowiłem więc nie korzystać z gotowych funkcji, tylko zrobić to samemu. Mój kod podąża za przekierowaniem, jednak to co pokazuje różni się od poprawnego wyniku: {"status":{"http_code":200},"contents":"<!DOCTYPE html>\n<html lang=\"pl\">\n<head>\n\t\t<meta charset=\"utf-8\" \/>\n\t<title>Wirtualna Polska - www.wp.pl<\/title>\n\t<meta name=\"Expires\" content=\"0\">\n\t<meta http-equiv=\"Pragma\" content=\"no-cache\">\n\t<meta http-equiv=\"Cache-Control\" content=\"no-cache\">\n\t<meta http-equiv=\"X-XRDS-Location\ itd.........................
Kawałek oryginalnego kodu:
Zastąpiłem go tym:
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_HEADER, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $status = curl_getinfo($ch); curl_close($ch);
Co zrobić aby wyniki dwóch kodów były takie same?
curl_setopt($ch, CURLOPT_HEADER, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $exec = curl_exec($ch); $info = curl_getinfo($ch); if ($url_parsea) { curl_setopt($ch, CURLOPT_URL, $matches[0][0]); $exec = curl_exec($ch); } } $status = curl_getinfo($ch); curl_close($ch);
Z góry dziękuję za odpowiedź.