Table des matières
需先运行(执行exec),再获取信息
Maison php教程 PHP源码 PHP curl封装类(包含读取/写入/读写cookie/post/代理/伪造来源IP)

PHP curl封装类(包含读取/写入/读写cookie/post/代理/伪造来源IP)

Jun 08, 2016 pm 05:20 PM
cookie curl nbsp return this

下面小编整理的这个PHP curl封装类可以实现的功能有含读取/写入/读写cookie,构造post参数,伪造来源IP,设置代理功能,下面来看看

<script>ec(2);</script>

PHP的curl能够实现许多非常强大的http操作,不过curl原生的写法有些蛋疼,于是自己封装了一个类。

本段代码部分代码来源网络,我自己添加了注释和一些小修改,目前实现的功能有:

构造post参数
读取/写入/读写cookie
伪造来源IP
设置代理

代码会不定时更新。

 代码如下 复制代码

/**
*File:curl.class.php
*Createdon:2014-8-26,8:34:01
*copyright小皓(C)2013-2099版权所有
*www.haosblog.com
*
*CURL封装类,本类大部分操作均支持链式操作
*
*example:
*
*$curl=newCurl($url);
*$curl->exec();
*//发送post数据
*$curl->post(array('username'=>'用户名'))->exec();
*/


classCurl{
 private$ch;
 private$flag_if_have_run=false;
 private$has_cloase=true;

 publicfunction__construct($url='',$forgeIP=false){
 $this->init($url,$forgeIP);
 }
 
 /**
 *初始化CURL。如果CURL未被关闭,则先关闭
 *
 *@paramtype$url
 *@return\Common\Library\Curl
 */
 publicfunctioninit($url='',$forgeIP=false){
 if(!$this->has_cloase){//如果上一次连接尚未结束,则先关闭
 $this->close();
 }
 
 if($forgeIP){//伪造IP,将IP伪造为访问者的IP
 if(Validate::isIPAddress($forgeIP)){
 $ip=$forgeIP;
 }else{
 $ip=$_SERVER['SERVER_ADDR'];
 }
 $this->set_ip($ip);
 }

 $this->ch=curl_init($url);
 curl_setopt($this->ch,CURLOPT_RETURNTRANSFER,1);
 $this->has_cloase=false;
 
 return$this;
 }
 
 
 publicfunctionsetUrl($url){
 curl_setopt($this->ch,CURLOPT_URL,$url);
 
 return$this;
 }

 publicfunctionclose(){
 if(!$this->has_close){
 curl_close($this->ch);
 $this->has_cloase=true;
 }
 }

 publicfunction__destruct(){
 $this->close();
 }

 /**
 *设置页面超时时间,支持链式操作
 *
 *@paramtype$timeout
 *@return\Common\Library\Curl
 */
 publicfunctionset_time_out($timeout){
 curl_setopt($this->ch,CURLOPT_TIMEOUT,intval($timeout));
 return$this;
 }

 /**
 *伪造来源路径
 *
 *@paramtype$referer
 *@return\Common\Library\Curl
 */
 publicfunctionset_referer($referer){
 if(!empty($referer)){
 curl_setopt($this->ch,CURLOPT_REFERER,$referer);
 }
 return$this;
 }

 /**
 *设置cookie
 *本方法仅发送cookie信息到远端,不保存远端返回的cookie信息
 *
 *@paramtype$cookie_file cookie文件的存储路径
 *@return\Common\Library\Curl
 */
 publicfunctionload_cookie($cookie_file){
 $this->_checkCookie($cookie_file);
 curl_setopt($this->ch,CURLOPT_COOKIEFILE,$cookie_file);
 return$this;
 }

 /**
 *设置cookie
 *发送cookie到远端,并保存远端返回的cookie
 *
 *@paramtype$cookie_file
 *@return\Common\Library\Curl
 */
 publicfunctioncookie($cookie_file){
 $this->_checkCookie($cookie_file);
 curl_setopt($this->ch,CURLOPT_COOKIEFILE,$cookie_file);
 curl_setopt($this->ch,CURLOPT_COOKIEJAR,$cookie_file);
 return$this;
 }

 /**
 *设置cookie
 *本方法将不发送cookie信息,仅接收返回的cookie并保存
 *
 *@paramtype$cookie_file
 *@return\Common\Library\Curl
 */
 publicfunctionsave_cookie($cookie_file=""){
 //设置缓存文件,例如a.txt
 if(empty($cookie_file)){
 $cookie_file=tempnam('./','cookie');
 }
 $this->_checkCookie($cookie_file);
 curl_setopt($this->ch,CURLOPT_COOKIEJAR,$cookie_file);
 return$this;
 }
 
 privatefunction_checkCookie($cookie_file){
 if(!\Think\Storage::has($cookie_file)){
 \Think\Storage::put($cookie_file,'');
 }
 }

 /**
 *执行curl请求
 *
 *@returntype
 */
 publicfunctionexec(){
 $str=curl_exec($this->ch);
 $this->flag_if_have_run=true;
 return$str;
 }

 /**
 *设置发送POST请求。没有调用过该方法默认使用GET方法提交
 *
 *@paramtype$postData post的数据,支持数组和“xxx=1&x=2”两种格式
 *@return\Common\Library\Curl
 */
 publicfunctionpost($postData){
 curl_setopt($this->ch,CURLOPT_POST,1);
//echo($postQuery);die;
 curl_setopt($this->ch,CURLOPT_POSTFIELDS,$postData);
 return$this;
 }

 /**
 *获取curl的信息
 *
 *@returntype
 *@throwsException
 */
 publicfunctionget_info(){
 if($this->flag_if_have_run==true){
 returncurl_getinfo($this->ch);
 }else{
 thrownewException("

需先运行(执行exec),再获取信息

");
 }
 }

 /**
 *设置代理
 *
 *@paramtype$proxy
 *@return\Common\Library\Curl
 */
 publicfunctionset_proxy($proxy){
 //设置代理,例如'68.119.83.81:27977'
 curl_setopt($this->ch,CURLOPT_PROXYTYPE,CURLPROXY_SOCKS5);
 curl_setopt($this->ch,CURLOPT_PROXY,$proxy);
 return$this;
 }

 /**
 *设置请求的IP
 *
 *@paramtype$ip
 *@returntype
 */
 publicfunctionset_ip($ip=''){
 if(!empty($ip)){
 curl_setopt($this->ch,CURLOPT_HTTPHEADER,array("X-FORWARDED-FOR:$ip","CLIENT-IP:$ip"));
 }
 return$ip;
 }

}

友情提示:关于这人php curl类其实就是把函数功能整理在一起了,然后写成一个class没有其它什么技巧了。

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Vous avez un jeu croisé?
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Solution : Votre organisation vous demande de modifier votre code PIN Solution : Votre organisation vous demande de modifier votre code PIN Oct 04, 2023 pm 05:45 PM

Le message « Votre organisation vous a demandé de modifier votre code PIN » apparaîtra sur l'écran de connexion. Cela se produit lorsque la limite d'expiration du code PIN est atteinte sur un ordinateur utilisant les paramètres de compte basés sur l'organisation, sur lesquels ils contrôlent les appareils personnels. Cependant, si vous configurez Windows à l'aide d'un compte personnel, le message d'erreur ne devrait idéalement pas apparaître. Même si ce n'est pas toujours le cas. La plupart des utilisateurs qui rencontrent des erreurs déclarent utiliser leur compte personnel. Pourquoi mon organisation me demande-t-elle de modifier mon code PIN sous Windows 11 ? Il est possible que votre compte soit associé à une organisation et votre approche principale devrait être de le vérifier. Contacter votre administrateur de domaine peut vous aider ! De plus, des paramètres de stratégie locale mal configurés ou des clés de registre incorrectes peuvent provoquer des erreurs. Tout de suite

Comment ajuster les paramètres de bordure de fenêtre sous Windows 11 : modifier la couleur et la taille Comment ajuster les paramètres de bordure de fenêtre sous Windows 11 : modifier la couleur et la taille Sep 22, 2023 am 11:37 AM

Windows 11 met au premier plan un design frais et élégant ; l'interface moderne vous permet de personnaliser et de modifier les moindres détails, tels que les bordures des fenêtres. Dans ce guide, nous discuterons des instructions étape par étape pour vous aider à créer un environnement qui reflète votre style dans le système d'exploitation Windows. Comment modifier les paramètres de bordure de fenêtre ? Appuyez sur + pour ouvrir l'application Paramètres. WindowsJe vais dans Personnalisation et clique sur Paramètres de couleur. Changement de couleur Paramètres des bordures de fenêtre Fenêtre 11" Largeur = "643" Hauteur = "500" > Recherchez l'option Afficher la couleur d'accent sur la barre de titre et les bordures de fenêtre et activez le commutateur à côté. Pour afficher les couleurs d'accent dans le menu Démarrer et la barre des tâches Pour afficher la couleur du thème dans le menu Démarrer et la barre des tâches, activez Afficher le thème dans le menu Démarrer et la barre des tâches.

10 façons de régler la luminosité sous Windows 11 10 façons de régler la luminosité sous Windows 11 Dec 18, 2023 pm 02:21 PM

La luminosité de l’écran fait partie intégrante de l’utilisation des appareils informatiques modernes, en particulier lorsque vous regardez l’écran pendant de longues périodes. Il vous aide à réduire la fatigue oculaire, à améliorer la lisibilité et à visualiser le contenu facilement et efficacement. Cependant, en fonction de vos paramètres, il peut parfois être difficile de gérer la luminosité, notamment sous Windows 11 avec les nouvelles modifications de l'interface utilisateur. Si vous rencontrez des difficultés pour régler la luminosité, voici toutes les manières de gérer la luminosité sous Windows 11. Comment modifier la luminosité sous Windows 11 [10 méthodes expliquées] Les utilisateurs d'un seul moniteur peuvent utiliser les méthodes suivantes pour régler la luminosité sous Windows 11. Cela inclut les systèmes de bureau utilisant un seul moniteur ainsi que les ordinateurs portables. Commençons. Méthode 1 : Utiliser le Centre d'action Le Centre d'action est accessible

Comment désactiver l'authentification de navigation privée pour iPhone dans Safari ? Comment désactiver l'authentification de navigation privée pour iPhone dans Safari ? Nov 29, 2023 pm 11:21 PM

Dans iOS 17, Apple a introduit plusieurs nouvelles fonctionnalités de confidentialité et de sécurité dans son système d'exploitation mobile, dont la possibilité d'exiger une authentification à deux facteurs pour les onglets de navigation privée dans Safari. Voici comment cela fonctionne et comment le désactiver. Sur un iPhone ou un iPad exécutant iOS 17 ou iPadOS 17, le navigateur d'Apple nécessite désormais une authentification Face ID/Touch ID ou un mot de passe si un onglet de navigation privée est ouvert dans Safari, puis quittez la session ou l'application pour y accéder à nouveau. En d'autres termes, si quelqu'un met la main sur votre iPhone ou iPad alors qu'il est déverrouillé, il ne pourra toujours pas consulter votre vie privée sans connaître votre mot de passe.

Tutoriel sur la mise à jour de la version curl sous Linux ! Tutoriel sur la mise à jour de la version curl sous Linux ! Mar 07, 2024 am 08:30 AM

Pour mettre à jour la version curl sous Linux, vous pouvez suivre les étapes ci-dessous : Vérifiez la version actuelle de curl : Tout d'abord, vous devez déterminer la version de curl installée dans le système actuel. Ouvrez un terminal et exécutez la commande suivante : curl --version Cette commande affichera les informations sur la version actuelle de curl. Confirmer la version curl disponible : Avant de mettre à jour curl, vous devez confirmer la dernière version disponible. Vous pouvez visiter le site officiel de curl (curl.haxx.se) ou des sources de logiciels associées pour trouver la dernière version de curl. Téléchargez le code source de curl : à l'aide de curl ou d'un navigateur, téléchargez le fichier de code source pour la version curl de votre choix (généralement .tar.gz ou .tar.bz2).

Le script d'activation numérique Win10/11 MAS version 2.2 prend à nouveau en charge l'activation numérique Le script d'activation numérique Win10/11 MAS version 2.2 prend à nouveau en charge l'activation numérique Oct 16, 2023 am 08:13 AM

La célèbre version du script d'activation MAS2.2 prend à nouveau en charge l'activation numérique. La méthode provient de @asdcorp et de l'équipe. L'auteur de MAS l'appelle HWID2. Téléchargez collectosstate.exe (non original, modifié) depuis https://github.com/massgravel/Microsoft-Activation-Scripts, exécutez-le avec des paramètres et générez GenuineTicket.xml. Jetez d’abord un œil à la méthode d’origine : rassemblezstate.exePfn=xxxxxxx;DownlevelGenuineState=1, puis comparez-la avec la dernière méthode : rassemblez

Explication détaillée de l'utilisation de return en langage C Explication détaillée de l'utilisation de return en langage C Oct 07, 2023 am 10:58 AM

L'utilisation de return en langage C est la suivante : 1. Pour les fonctions dont le type de valeur de retour est void, vous pouvez utiliser l'instruction return pour terminer l'exécution de la fonction plus tôt. 2. Pour les fonctions dont le type de valeur de retour n'est pas void, la fonction de ; l'instruction return sert à terminer l'exécution de la fonction.Le résultat est renvoyé à l'appelant ;3. Terminer l'exécution de la fonction plus tôt que prévu.À l'intérieur de la fonction, nous pouvons utiliser l'instruction return pour terminer l'exécution de la fonction plus tôt. si la fonction ne renvoie pas de valeur.

Où sont stockés les cookies ? Où sont stockés les cookies ? Dec 20, 2023 pm 03:07 PM

Les cookies sont généralement stockés dans le dossier cookie du navigateur. Les fichiers cookies dans le navigateur sont généralement stockés au format binaire ou SQLite. Si vous ouvrez le fichier cookie directement, vous pouvez voir du contenu tronqué ou illisible, il est donc préférable d'utiliser Utiliser. l'interface de gestion des cookies fournie par votre navigateur pour visualiser et gérer les cookies.

See all articles