1. Étapes de base de la requête cURL :
(1)Initialisation
(2) Définir les options, y compris l'URL
(3) Exécuter et obtenir le contenu du document HTML
(4) Relâchez la poignée cURL
//2. Définir les options, y compris l'URL
curl_setopt($ch, CURLOPT_URL, "http://www.cnblogs.com/it-cen/");
//Renvoyer les informations obtenues par curl_exec() sous la forme d'un flux de fichier au lieu de les sortir directement
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//Les informations du fichier d'en-tête seront affichées sous forme de flux de données au démarrage
curl_setopt($ch, CURLOPT_HEADER, 1);
//3. Exécuter et obtenir le contenu du document HTML
curl_exec($ch);
//4. Poignée de relâchement
curl_close($ch);
echo $ch;
?>
Remarque : La deuxième étape est la plus importante, qui est la fonction curl_setopt()
Nous pouvons ajouter une instruction pour vérifier les erreurs. Notez que "===false" est utilisé ici pour faire la distinction entre la sortie vide et la valeur booléenne false
La fonction curl_getinfo() renvoie des informations relatives à cette requête après l'exécution de cURL, ce qui est utile pour le débogage et le dépannage :
';<br> print_r($info); echo '';
Par exemple, lorsque cURL est en cours d'exploration, les données analysées peuvent souvent être incomplètes en raison du réseau et d'autres raisons. calcule la taille du fichier, puis la compare avec celle obtenue par curl_getinfo(). Si les tailles sont égales, le téléchargement est considéré comme correct, sinon le téléchargement est répété. Regardons un exemple de capture d'une image :
//1. Initialisation
$ch = curl_init();
//2. Définir les options, y compris l'URL
curl_setopt($ch, , CURLOPT_URL, "http://img04.taobaocdn.com/tfscom/TB1omaTHXXXXXajXVXXtKXbFXXX.png");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
//3. Exécuter et obtenir du contenu
$res = curl_exec($ch);
//Obtenir des informations
$info = curl_getinfo($ch);
//4. Libérer les ressources
curl_close($ch);
file_put_contents("d:/aa.png", $res);
$size = filesize("d:/aa.png");
if ($size != $info['size_download']) {
echo "Les données téléchargées sont incomplètes, veuillez les télécharger à nouveau";
} autre {
echo "Le téléchargement des données est terminé" ;
>
?>
3. Utilisez la méthode POST pour envoyer des données dans cURL
$data = array('name'=>'kelly', 'age'=>27, 'sex'=>1);
curl_setopt($ch, CURLOPT_URL, "http://localhost.post.php");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// Prêt à publier
curl_setopt($ch, CURLOPT_POST, 1);
//Ajouter
à la variable de publication
curl_setopt($ch, CURLOPT_POSTFIELDS,$data);
$res = curl_exec($ch);
curl_close($ch);
echo $res;
?>
Utilisez cette méthode pour simuler le fait de laisser un message, ou vous pouvez vous asseoir sur un robot remplissant d'eau. L'idée est la même
4. Téléchargez des fichiers en utilisant cURL
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://127.0.0.1/Socket/upload_file.php");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$res = curl_exec($ch);
curl_close($ch);
echo $res;
?>
Remarque : lors de l'envoi d'un fichier, préfixez le nom du fichier par @ et utilisez le chemin complet
5. Éléments de réglage cURL
En fait, cURL dispose de nombreuses options de configuration. Ces options sont l'âme de cURL. Elles sont définies via setopt(). Voici un résumé de plusieurs éléments de configuration courants et importants. utilisez cURL à l'avenir. Aide :
CURLOPT_AUTOREFERER : lors d'une redirection basée sur l'emplacement :, définissez automatiquement les informations Referer : dans l'en-tête
CURLOPT_COOKIESESSION : lorsqu'il est activé, cURL transmettra étroitement un cookie de session et ignorera les autres cookies
CURLOPT_HEADER : affiche les informations du fichier d'en-tête sous forme de flux de données
CURLOPT_INFILESIZE : définissez la taille du fichier téléchargé en octets
CURLOPT_MAXCONNECTS : Nombre maximum de connexions autorisées
CURLOPT_MAXREDIRS : Spécifiez le nombre maximum de redirections HTTP
CURLOPT_COOKIE : Définissez le contenu de la partie "cookie :" de la requête HTTP. Plusieurs cookies sont suivis d'un point-virgule, et il y a un espace après le point-virgule
.CURLOPT_POSTFIELDS : Toutes les données sont envoyées à l'aide de l'opération "POST" dans le protocole HTTP. Pour envoyer des fichiers, ajoutez le préfixe @ devant le nom du fichier et utilisez le chemin complet
.......
Veuillez vous référer au manuel PHP pour des éléments de configuration plus spécifiques
cURL est très puissant. C'est une bibliothèque universelle et n'est pas propre à PHP.
J'espère que les lecteurs gagneront quelque chose en étudiant plusieurs exemples classiques de cURL dans cet article de blog.