PHP/cURL curl_exec() erreur?
C'est ma première fois à l'aide de cURL de sorte qu'il pourrait être une stupide erreur de ma part, mais le code suivant:
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);
echo $output;
Imprime "1". C'est ma compréhension que CURLOPT_RETURNTRANSFER devraient veiller à ce que curl_exec renvoie 0 ou le contenu, mais ici, c'est de se comporter comme si CURLOPT_RETURNTRANSFER n'a pas été définie sur true. Ai-je raté quelque chose d'évident?
Merci!
- Votre code est correct pour faire ce que vous décrivez comme le résultat souhaité, on dirait que le serveur à
$url
retourne1
dans le corps de la réponse - que voulez-vous obtenir si vous le chargez dans un navigateur? Qu'est-ce que dans$url
? Ce n'var_dump($output);
(au lieu deecho
) montrer? - Hein. var_dump($output); montre bool(true)...ce qui implique que le contenu de la page n'est pas 1, et c'est vraiment la fonction renvoie true, oui? L' $url est facebook.com/feeds/... (un flux à partir d'un facebook fan page dont je suis l'espoir de se transformer en un simple objet XML). Merci!!!!
- À essayer: itslennysfault.com/...
- ...et
$xml = simplexml_load_file($url);
pas une option? Bien que votre code devrait fonctionner, pouvez-vous montrer votre code (moins les mots de passe, etc)? - C'est effectivement là où j'ai eu l'idée de la première place; il n'a pas exact que le code soit.
- Je vais essayer simplexml_load_file...désolé, c'est littéralement de ma première expérience avec xml et tel et je ne suis pas au courant de toutes les options 🙂 Edit: jk ce serveur n'est pas en cours d'exécution de PHP 5. Le curl problème ne devrait pas être lié à ce bien, non?
- Le comportement de libcurl à cet égard n'a pas changé depuis longtemps (peut-être jamais), donc je doute que le PHP<5 est le problème. C'est certainement un problème, mais ce n'est pas le problème ici. Vous devriez être en mesure de simplement passer l'URL de
simplexml_load_file()
tant que le serveur aallow_url_fopen
activé.
Vous devez vous connecter pour publier un commentaire.
Code semble correct, essayez curl_getinfo()
Il peut-être possible que la ressource est littéralement retour d'un corps avec un "1"
J'ai eu le même problème que j'ai résolu en utilisant
Le problème est que le serveur a redonné une page d'erreur personnalisée, qui cURL interprétées comme des succès. En utilisant cette option, la page d'erreur personnalisée code d'en-tête de la 404 a été correctement détecté et l'URL de défaillance a été détectée.
OP se réfère à l'utilisation de facebook comme leur cible, alors je soupçonne un message d'erreur personnalisé a été aussi bien utilisé par l'url cible.
J'utiliserais Bouffer, qui est un de la programmation orientée objet wrapper autour de la boucle. (Bien que depuis que vous êtes tout simplement à l'aide d'une requête GET,
file_get_contents($url);
serait bien fonctionner). Il n'y a pas de réel problème avec votre code. Êtes-vous sûr que l'URL est valide?Aussi, assurez-vous que
curl_setopt
est de retourner true pour chaque appel à elle, et essayez de définir le CURLOPT_URL à l'aide de cette fonction.