2012-05-08 5 views
0

La fonction ci-dessous renvoie un résultat différent de celui que nous obtenons en réalité la page directement.cURL renvoie un résultat différent

Quel serait le problème?

function file_get_contents_curl($url) { 
    $ch = curl_init(); 
    $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_HEADER, 0); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //Set curl to return the data instead of printing it to the browser. 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt ($ch, CURLOPT_USERAGENT, $useragent); 
    curl_setopt ($ch, CURLOPT_TIMEOUT, 10); 
    curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1); 
    $data = curl_exec($ch); 
    curl_close($ch); 

return $data; 
} 
+0

Quel navigateur utilisez-vous lorsque vous y accédez directement? –

+0

@paul: mozilla firefox – joHN

Répondre

1

Je suppose que votre accès avec un navigateur, mais votre réglage de la $useragent à un autre. Le site externe peut renvoyer des données différentes en fonction de l'agent utilisateur

+0

est-il un moyen d'obtenir le contenu du site externe qui ne dépend pas de l'agent? – joHN

+0

Bien sûr, n'utilisez pas '$ useragent'. –

+0

encore le problème persiste. J'ai essayé d'obtenir le résultat de recherche de google par ceci. Il donne un nombre différent de comptage et produit comme ceci "2,00,000 RÉSULTATS", qui est différent de l'original "de 5,00,000 RÉSULTATS" – joHN

Questions connexes