Maison  >  Article  >  développement back-end  >  Comment utiliser curl en php ? (Introduction à l'utilisation)

Comment utiliser curl en php ? (Introduction à l'utilisation)

青灯夜游
青灯夜游avant
2020-04-17 09:16:456917parcourir

Comment utiliser curl en php ? L'article suivant résumera l'utilisation de curl en php. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il sera utile à tout le monde.

Comment utiliser curl en php ? (Introduction à l'utilisation)

1. Introduction au curl

L'explication donnée par l'Encyclopédie Baidu est la suivante : artefact de transmission de données. Alors, où est son artefact ? Après avoir recherché les informations, j'ai découvert que curl peut utiliser la syntaxe URL pour simuler un navigateur afin de transmettre des données. Parce qu'il simule un navigateur, il prend en charge une variété de protocoles réseau. Prend actuellement en charge les protocoles http, https, ftp, gopher, telnet, dict, file et ldap. libcurl prend également en charge l'authentification HTTPS, HTTP POST, HTTP PUT, le téléchargement FTP (cela peut également être effectué via l'extension FTP de PHP), le téléchargement basé sur un formulaire HTTP, le proxy, les cookies et l'authentification par nom d'utilisateur + mot de passe.

La méthode la plus couramment utilisée en PHP est curl pour simuler les requêtes get et post.

2. Utilisation

(1) Si vous souhaitez utiliser curl, la première étape consiste à activer curl en php et à le trouver dans le fichier de configuration php php. ini extension=php_curl.dll, supprimez le ';' devant. Redémarrez le serveur. Utilisez phpinfo() pour imprimer le code php et constatez que la description curl dans l'image est ouverte avec succès.

(2) L'utilisation de curl pour compléter des requêtes simples est principalement divisée en quatre étapes principales :

Initialisation et création d'une nouvelle ressource curl.

Définissez l'URL et les options correspondantes

Récupérez l'URL et transmettez-la au navigateur

Fermez la ressource curl. Libérer des ressources.

par exemple :

<?php
// 创建一个新cURL资源
$ch = curl_init();

// 设置URL和相应的选项
$options = array(CURLOPT_URL => &#39;http://www.example.com/&#39;,
                 CURLOPT_HEADER => false
                );

curl_setopt_array($ch, $options);

// 抓取URL并把它传递给浏览器
curl_exec($ch);

// 关闭cURL资源,并且释放系统资源
curl_close($ch);
?>

3. fonction curl

  • curl_close — fermer une session cURL

  • curl_copy_handle — Copie un handle cURL et toutes ses options

  • curl_errno — Renvoie le dernier numéro d'erreur

  • curl_error — Renvoie un chaîne protégeant l'erreur la plus récente de la session en cours

  • curl_escape — L'URL encode la chaîne donnée

  • curl_exec — Exécute une session cURL

  • curl_file_create — Créer un objet CURLFile

  • curl_getinfo — Obtenir des informations sur un handle de ressource de connexion cURL

  • curl_init — Initialiser une session cURL

  • curl_multi_add_handle — Ajouter des poignées curl individuelles à une session curl batch

  • curl_multi_close — Fermer une session cURL Grouper les poignées cURL

  • curl_multi_exec — Exécute une sous-connexion du handle cURL actuel

  • curl_multi_getcontent — Si CURLOPT_RETURNTRANSFER est défini, renvoie le texte de la sortie récupérée stream

  • curl_multi_info_read — Obtenez des informations de transport pertinentes pour le cURL actuellement analysé

  • curl_multi_init — Renvoie un nouveau handle de lot cURL

  • curl_multi_remove_handle — Supprimer une ressource de handle dans la ressource de handle du lot curl

  • curl_multi_select — Attendre toutes les connexions actives dans le lot cURL

  • curl_multi_setopt — Définir une option pour le traitement parallèle cURL

  • curl_multi_strerror — Chaîne de retour décrivant le code d'erreur

  • curl_pause — Suspendre et reprendre une connexion

  • curl_reset — Réinitialise toutes les options pour un handle de session libcurl

  • curl_setopt_array — Définit les options en masse pour une session de transfert cURL

  • curl_setopt — Définir une option de transfert cURL

  • curl_share_close — Fermer un handle de partage cURL

  • curl_share_init — Initialiser une cURL share handle

  • curl_share_setopt — Définissez une option pour un handle de partage cURL.

  • curl_strerror — Chaîne de retour décrivant le code d'erreur donné

  • curl_unescape — Décode la chaîne encodée d'URL donnée

  • curl_version — Obtenez les informations sur la version de cURL

4 . Exemples

1. Utilisez curl et obtenez pour obtenir des données

<?php
$url = &#39;http://www.example.com&#39;;
//初始化一个 cURL 对象 
$ch  = curl_init();
//设置你需要抓取的URL
curl_setopt($ch, CURLOPT_URL, $url);
// 设置cURL 参数,要求结果保存到字符串中还是输出到屏幕上。
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//是否获得跳转后的页面
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
$data = curl_exec($ch);
curl_close($ch);
echo $data;
?>

2. Utilisez curl et post pour obtenir des données

<?php
function curl_post($url, $arr_data){
   $post_data = http_build_query($url_data);
   $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch,  CURLOPT_POSTFLELDS, $post_data);
    $data = curl_exec($ch);
    curl_close($ch);
    echo $data;
}
$arr_post = array(
    &#39;name&#39;=>&#39;test_name&#39;,
    &#39;age&#39;   => 1
);
curl_post("http://www.explame.com/", $arr_post);
?>

3. page

Pourquoi utiliser un proxy pour explorer ? Prenons l'exemple de Google. Si vous capturez les données de Google très fréquemment sur une courte période de temps, vous ne pourrez pas les capturer. Lorsque Google restreint votre adresse IP, vous pouvez modifier le proxy et explorer à nouveau.

<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://google.com"); 
curl_setopt($ch, CURLOPT_HEADER, false);  
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//是否通过http代理来传输
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, TRUE);
curl_setopt($ch, CURLOPT_PROXY, 125.21.23.6:8080);  
//url_setopt($ch, CURLOPT_PROXYUSERPWD, &#39;user:password&#39;);如果要密码的话,加上这个  
$result=curl_exec($ch); 
curl_close($ch);
?>

4. Continuez à maintenir l'appel de session de ce site

Dans le cas d'une connexion utilisateur synchrone, la session doit être partagée Si vous souhaitez continuer à maintenir la session de ce site. site, alors l'identifiant de session doit être placé dans http Requesting

<?php
$session_str = session_name().&#39;=&#39;.session_id().&#39;; path=/; domain=.explame.com&#39;;
session_write_close(); //将数据写入文件并且结束session
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_COOKIE, $session_str); 
$ret = curl_exec($ch);
curl_close($ch);
?>

end

Cet article est reproduit à partir de : https://blog.csdn.net/longgeaisisi/article/details/ 89330576

Apprentissage recommandé : Tutoriel vidéo PHP

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer