2010-01-04 5 views
3

J'utilise la méthode PHP curl pour obtenir une réponse de type chaîne. Pour créer la demande que j'utilise:obtenir la valeur d'une réponse url avec curl

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_POST, true); 
curl_setopt($ch, CURLOPT_FAILONERROR, true); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 
curl_setopt($ch, CURLOPT_BINARYTRANSFER, $data); 

$response = curl_exec($ch); 
$err = curl_error($ch); 

curl_close($ch); 

if($response === false) 
    throw new Exception(__CLASS__."::".__FUNCTION__."_".$err); 
return $response; 

Pourquoi je reçois toujours un bool (true) la réponse à la place de la chaîne I l'écho de l'autre côté?

Merci

+0

Que voulez-vous dire par «réponse "vrai"? Est-ce que $ response est la chaîne "true", ou est-ce un booléen vrai? – GZipp

Répondre

10

Depuis que vous avez déjà

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 

dans votre code. curl_exec devrait déjà renvoyer le contenu de la page au lieu d'un BOOL.

Ceci est un extrait de bibliothèque que j'utilise. Comme l'a souligné cela pourrait ne pas être nécessaire, mais il m'a aidé une fois ...

//The content - if true, will not download the contents 
curl_setopt($ch, CURLOPT_NOBODY, false); 

il semble également avoir quelques bugs liés à CURLOPT_NOBODY (ce qui pourrait expliquer pourquoi vous avez cette question):

+0

Il veut que le corps soit retourné, avec 'CURLOPT_NOBODY' le corps ne sera même pas téléchargé. – Wim

+0

C'est pourquoi il est défini sur FALSE. S'il est réglé sur TRUE, il ne téléchargera aucun contenu lu plus attentivement avant de mettre fin au vote! – AlexV

+0

Ok, vous avez raison. Cependant, la valeur par défaut pour 'CURLOPT_NOBODY' est false, il n'est donc pas nécessaire de le définir. En outre, vous êtes censé expliquer votre réponse - j'ai même dû faire défiler votre code vers la droite avant de pouvoir lire ce commentaire. – Wim

Questions connexes