Maison >développement back-end >tutoriel php >La fonction PHP curl_setopt simule un exemple de connexion utilisateur
La fonction php curl_setopt() définira les options pour une session CURL. Il s'agit d'une fonction importante en php. Elle peut imiter certains comportements des utilisateurs, tels que la simulation de la connexion, de l'enregistrement et d'autres comportements utilisateur. Cet article vous présentera un exemple d'utilisation de la fonction curl_setopt en PHP pour simuler la connexion utilisateur. J'espère qu'il vous sera utile de comprendre la fonction curl_setopt().
Le code réel et l'explication du code sont la meilleure aide pour vous permettre de comprendre l'exemple de connexion utilisateur simulé de la fonction php curl_setopt :
Tout d'abord, regardons la partie connexion du code ://模拟登录 function login_post($url, $cookie, $post) { $curl = curl_init();//初始化curl模块 curl_setopt($curl, CURLOPT_URL, $url);//登录提交的地址 curl_setopt($curl, CURLOPT_HEADER, 0);//是否显示头信息 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 0);//是否自动显示返回的信息 curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie); //设置Cookie信息保存在指定的文件中 curl_setopt($curl, CURLOPT_POST, 1);//post方式提交 curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($post));//要提交的信息 curl_exec($curl);//执行cURL curl_close($curl);//关闭cURL资源,并且释放系统资源 }La fonction login_post() initialise d'abord curl_init(), puis utilise curl_setopt() pour définir les informations d'option pertinentes, y compris l'adresse URL à soumettre, le fichier cookie enregistré et les données de publication (nom d'utilisateur et mot de passe, etc.), s'il faut renvoyer des informations, etc., puis curl_exec exécute curl, et enfin curl_close() libère les ressources. Notez que http_build_query() de PHP peut convertir des tableaux en chaînes connectées. Ensuite, si la connexion réussit, nous devons obtenir les informations de la page une fois la connexion réussie.
//登录成功后获取数据 function get_content($url, $cookie) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie); //读取cookie $rs = curl_exec($ch); //执行cURL抓取页面内容 curl_close($ch); return $rs; }La fonction get_content() initialise également curl d'abord, puis définit les options pertinentes, exécute curl et libère les ressources. Parmi eux, nous définissons CURLOPT_RETURNTRANSFER sur 1 pour renvoyer automatiquement les informations, et CURLOPT_COOKIEFILE peut lire les informations des cookies enregistrées lors de la connexion, et enfin renvoyer le contenu de la page. Notre objectif ultime est d'obtenir les informations après une connexion simulée, qui sont des informations utiles qui ne peuvent être obtenues qu'après une connexion normale réussie. Ensuite, nous prenons comme exemple la connexion au site Web PHP chinois pour voir comment capturer les informations après une connexion réussie.
//设置post的数据 $post = array ( 'email' => 'oschina账户', 'pwd' => 'oschina密码', 'goto_page' => '/my', 'error_page' => '/login', 'save_login' => '1', 'submit' => '现在登录' ); //登录地址 $url = "http://www.php.cn/action/user/login.html"; //设置cookie保存路径 $cookie = dirname(__FILE__) . '/cookie_oschina.txt'; //登录后要获取信息的地址 $url2 = "http://m.oschina.net/my"; //模拟登录 login_post($url, $cookie, $post); //获取登录页的信息 $content = get_content($url2, $cookie); //删除cookie文件 @ unlink($cookie); //匹配页面信息 $preg = "/<td class='portrait'>(.*)<\/td>/i"; preg_match_all($preg, $content, $arr); $str = $arr[1][0]; //输出内容 echo $str;Résumé d'utilisation1. Initialisez curl 2. Utilisez curl_setopt pour définir l'URL cible et d'autres options 3. , Exécutez curl; 4. Après l'exécution, fermez curl 5. [Articles connexes recommandés]1.
Introduction au concept et exemples d'utilisation de la fonction php curl_setopt
2.Utilisation du Fonction php curl_setopt() Un exemple simple de capture de pages Web et de données POST
3.Explication détaillée des exemples d'utilisation de la fonction PHP curl_exec
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!