Maison >développement back-end >tutoriel php >Exemple d'utilisation du code source h5 de développement PHP
PHP développe l'utilisation de curl du code source des échecs et des cartes h5 (aqiulian.com), pour plus de consultations sur l'utilisation de PHPcurl Q : 212303635. curl est un outil de transfert de fichiers utilisant la syntaxe URL, prenant en charge FTP, FTPS, HTTP HTTPS SCP SFTP TFTP TELNET DICT FILE et LDAP. curl prend en charge les certificats SSL, HTTP POST, HTTP PUT, les téléchargements FTP, Kerberos, les téléchargements basés sur HTTP, les proxys, les cookies, l'authentification utilisateur + mot de passe, la récupération de transfert de fichiers, les canaux proxy http et une foule d'autres astuces utiles. Voir le manuel de référence pour plus de détails
Il s'avère que PHP n'étend pas cette fonction par défaut, mais elle existe toujours, mais elle n'est pas activée. Ouvrez le répertoire d'installation de PHP, recherchez les trois fichiers suivants ssleay32.dll, libeay32.dll et php_curl.dll, copiez-les un par un dans le dossier system32 du répertoire système, modifiez le fichier php.ini et recherchez la ligne ; extension= php_curl.dll Supprimez le signe ; devant, enregistrez et redémarrez le serveur. Créez un fichier PHP dans le répertoire du site avec le contenu suivant :
$ch = curl_init(“http://www.php.net”); curl_exec($ch); curl_close($ch);
Aperçu Si vous parvenez à ouvrir http://www.php.net, l'installation est réussie.
Quant à l'installation de Linux et Unix, cela peut être un peu plus gênant. Vous devez télécharger la bibliothèque curl depuis http://curl.haxx.se/ ou d'autres sites Web .
Les informations suivantes Chaque paramètre de cette fonction est :
bool curl_setopt (int ch, option de chaîne, valeur mixte)
La fonction curl_setopt() définira options pour une session CURL. Le paramètre option est le paramètre souhaité et value est la valeur donnée par cette option.
Les valeurs des options suivantes seront utilisées sous forme d'entiers longs (spécifiés dans le paramètre option) :
* CURLOPT_INFILESIZE : Lorsque vous téléchargez un fichier sur un site distant, cette option indique à PHP que la taille du fichier téléchargé.
* CURLOPT_VERBOSE : Si vous souhaitez que CURL signale chaque événement inattendu, définissez cette option sur une valeur non nulle.
* CURLOPT_HEADER : Si vous souhaitez inclure un en-tête dans la sortie, définissez cette option sur une valeur non nulle.
* CURLOPT_NOPROGRESS : Si vous ne souhaitez pas que PHP affiche une barre de progression pour les transferts CURL, définissez cette option sur une valeur non nulle. Remarque : PHP définit automatiquement cette option sur une valeur non nulle, vous ne devez modifier cette option qu'à des fins de débogage.
* CURLOPT_NOBODY : Si vous ne souhaitez pas inclure la partie du corps dans la sortie, définissez cette option sur une valeur non nulle.
* CURLOPT_FAILONERROR : Si vous souhaitez que PHP ne s'affiche pas lorsqu'une erreur se produit (le code HTTP renvoie supérieur ou égal à 300), définissez cette option sur une valeur non nulle. Le comportement par défaut consiste à renvoyer une page normale et à ignorer le code.
* CURLOPT_UPLOAD : Si vous souhaitez que PHP prépare le téléchargement, définissez cette option sur une valeur non nulle.
* CURLOPT_POST : Si vous souhaitez que PHP effectue un HTTP POST standard, définissez cette option sur une valeur non nulle. Ce POST est du type application/x-www-from-urlencoded ordinaire, principalement utilisé par les formulaires HTML.
* CURLOPT_FTPLISTONLY : définissez cette option sur une valeur non nulle et PHP listera les noms de répertoires pour FTP.
* CURLOPT_FTPAPPEND : définissez cette option sur une valeur non nulle et PHP appliquera le fichier distant au lieu de l'écraser.
* CURLOPT_NETRC : définissez cette option sur une valeur non nulle et PHP recherchera dans votre fichier ~./netrc le nom d'utilisateur et le mot de passe du site distant auquel vous souhaitez vous connecter.
* CURLOPT_FOLLOWLOCATION : définissez cette option sur un en-tête non nul (comme "Location : ") et le serveur l'enverra dans le cadre de l'en-tête HTTP (notez que ceci est récursif, PHP enverra quelque chose comme "Location : " tête).
* CURLOPT_PUT : définissez cette option sur une valeur non nulle pour télécharger un fichier via HTTP. Pour télécharger ce fichier, vous devez définir les options CURLOPT_INFILE et CURLOPT_INFILESIZE
* CURLOPT_MUTE : définissez cette option sur une valeur non nulle et PHP sera complètement silencieux pour la fonction CURL.
* CURLOPT_TIMEOUT : définissez un nombre entier long comme nombre maximum de secondes.
* CURLOPT_LOW_SPEED_LIMIT : définissez un entier long pour contrôler le nombre d'octets envoyés.
* CURLOPT_LOW_SPEED_TIME : définissez un entier long pour contrôler le nombre de secondes de transmission du nombre d'octets spécifié par CURLOPT_LOW_SPEED_LIMIT.
* CURLOPT_RESUME_FROM : transmettez un paramètre long contenant l'adresse de décalage d'octet (le formulaire de démarrage vers lequel vous souhaitez transférer).
* CURLOPT_SSLVERSION : Passer un paramètre long contenant la version SSL. Par défaut, PHP fera son propre travail, pour plus de sécurité, vous devrez le configurer manuellement.
* CURLOPT_TIMECONDITION : passez un paramètre long pour spécifier comment gérer le paramètre CURLOPT_TIMEVALUE. Vous pouvez définir ce paramètre sur TIMECOND_IFMODSINCE ou TIMECOND_ISUNMODSINCE. Ceci est uniquement pour HTTP.
* CURLOPT_TIMEVALUE : Passez un certain nombre de secondes de 1970-1-1 à maintenant. Cette heure sera utilisée comme valeur spécifiée par l'option CURLOPT_TIMEVALUE, ou par la valeur par défaut TIMECOND_IFMODSINCE.
Les valeurs des options suivantes seront traitées comme des chaînes :
* CURLOPT_URL: 这是你想用PHP取回的URL地址。你也可以在用curl_init()函数初始化时设置这个选项。
* CURLOPT_USERPWD: 传递一个形如[username]:[password]风格的字符串,作用PHP去连接。
* CURLOPT_PROXYUSERPWD: 传递一个形如[username]:[password] 格式的字符串去连接HTTP代理。
* CURLOPT_RANGE: 传递一个你想指定的范围。它应该是”X-Y”格式,X或Y是被除外的。HTTP传送同样支持几个间隔,用逗句来分隔(X-Y,N-M)。
* CURLOPT_POSTFIELDS: 传递一个作为HTTP “POST”操作的所有数据的字符串。
* CURLOPT_REFERER: 在HTTP请求中包含一个”referer”头的字符串。
* CURLOPT_USERAGENT: 在HTTP请求中包含一个”user-agent”头的字符串。
* CURLOPT_FTPPORT: 传递一个包含被ftp “POST”指令使用的IP地址。这个POST指令告诉远程服务器去连接我们指定的IP地址。这个字符串可以是一个IP地址,一个主机名,一个网络界面名(在UNIX下),或是‘-’(使用系统默认IP地址)。
* CURLOPT_COOKIE: 传递一个包含HTTP cookie的头连接。
* CURLOPT_SSLCERT: 传递一个包含PEM格式证书的字符串。
* CURLOPT_SSLCERTPASSWD: 传递一个包含使用CURLOPT_SSLCERT证书必需的密码。
* CURLOPT_COOKIEFILE: 传递一个包含cookie数据的文件的名字的字符串。这个cookie文件可以是Netscape格式,或是堆存在文件中的HTTP风格的头。
* CURLOPT_CUSTOMREQUEST: 当进行HTTP请求时,传递一个字符被GET或HEAD使用。为进行DELETE或其它操作是有益的,更Pass a string to be used instead of GET or HEAD when doing an HTTP request. This is useful for doing or another, more obscure, HTTP request. 注意: 在确认你的服务器支持命令先不要去这样做。下列的选项要求一个文件描述(通过使用fopen()函数获得):
* CURLOPT_FILE: 这个文件将是你放置传送的输出文件,默认是STDOUT.
* CURLOPT_INFILE: 这个文件是你传送过来的输入文件。
* CURLOPT_WRITEHEADER: 这个文件写有你输出的头部分。
* CURLOPT_STDERR: 这个文件写有错误而不是stderr。用来获取需要登录的页面的例子,当前做法是每次或许都登录一次,有需要的人再做改进了.
摘几个从别的网站扣过来的例子:
例一:
$cookie_jar = tempnam(‘./tmp’,'cookie’); $ch = curl_init(); curl_setopt($ch,CURLOPT_URL, ‘http://******’); curl_setopt($ch, CURLOPT_POST, 1); $request = ‘email_address=&password=&action=’; curl_setopt($ch, CURLOPT_POSTFIELDS, $request); //把返回来的cookie信息保存在$cookie_jar文件中 curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_jar); //设定返回的数据是否自动显示 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //设定是否显示头信息 curl_setopt($ch, CURLOPT_HEADER, false); //设定是否输出页面内容 curl_setopt($ch, CURLOPT_NOBODY, false); curl_exec($ch); curl_close($ch); //get data after login
例二:
$ch2 = curl_init();curl_setopt($ch2, CURLOPT_URL, ‘ curl_setopt($ch2, CURLOPT_HEADER, false);curl_setopt($ch2, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch2, CURLOPT_COOKIEFILE, $cookie_jar);$orders = curl_exec($ch2);echo ”; echo strip_tags($orders);echo ”;curl_close($ch2); 实践证明很稳定:)
例三:
set_time_limit(0); function _rand() { $length=26; $chars = “0123456789abcdefghijklmnopqrstuvwxyz”; $max = strlen($chars) – 1; mt_srand((double)microtime() * 1000000); $string = ”; for($i = 0; $i < $length; $i++) { $string .= $chars[mt_rand(0, $max)]; } return $string; } $HTTP_SESSION=_rand(); echo $HTTP_SESSION; $HTTP_Server="www.baidu.com"; $HTTP_URL="/"; $ch = curl_init(); curl_setopt ($ch,CURLOPT_URL,"http://".$HTTP_Server.$HTTP_URL); curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); curl_setopt($ch,CURLOPT_USERAGENT,"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)"); //curl_setopt($ch,CURLOPT_COOKIE,$HTTP_SESSION); $res = curl_exec($ch); curl_close ($ch); print_r($res);
刷论坛代码:
1、抓cookies程序:
$URL="http://www.yoururl.com/bbs/login.asp?action=chk";//填入论坛的登陆页面地址$ch = curl_init(); curl_setopt($ch,CURLOPT_URL,$URL); curl_setopt($ch,CURLOPT_REFERER,"http://www.hxfoods.com/bbs/login.asp");//设置,访问页面的来源地址 curl_setopt($ch,CURLOPT_POST,1);curl_setopt($ch,CURLOPT_POSTFIELDS,'username=→→敢死队→&password=168168'); //分析登陆页面,把用户名,密码分别对应起来curl_setopt ($ch, CURLOPT_HEADER,true); //使能显示http头,curl_exec($ch);if (curl_errno($ch)){print curl_error($ch);}else{curl_close($ch);}
2、刷楼了:
set_time_limit(0);//设置程序执行时间无限制$i=10000;//耍10000次for($j=0;$j<$i;$j++){ $URL="http://www.yoururl.com/bbs/savepost.asp";//这个地址是回复表单里面action的url地址$ch = curl_init(); curl_setopt($ch,CURLOPT_URL,$URL); curl_setopt($ch,CURLOPT_REFERER," //设置来源地址,如果不设置,论坛服务器有可能有验证不允许回复curl_setopt($ch,CURLOPT_COOKIESESSION,true); //能保存cookiecurl_setopt ($ch,CURLOPT_COOKIE,"DvForum=userid=24122&usercookies=0&userhidden=2&password=w0reu3g775VrY745&userclass=%96%7C&username=%A1%FA%A1 %FA%B8%D2%CB%C0%B6%D3%A1%FA&StatUserID=2194783945 ");//这儿就是设置cookie了curl_setopt($ch,CURLOPT_POST,1);curl_setopt($ch,CURLOPT_NOBODY,1); //不显示内容,因为有很多论坛回复后要自动跳转。curl_setopt($ch,CURLOPT_POSTFIELDS,'Body=gfdfgdfgasdfgdfgdfgdfg& followup=672709&RootID=1274 37&star=58&TotalUseTable=Dv_bbs3& amp;UserName=→→敢死队→&signflag=1&total=65535');//把你分析的回复表单的参数分别赋值curl_setopt ($ch, CURLOPT_ HEADER,true);curl_exec($ch);if (curl_errno($ch)){print curl_error($ch);}else{curl_close($ch);} }
curl_close — 关闭一个curl会话
curl_copy_handle — 拷贝一个curl连接资源的所有内容和参数
curl_errno — 返回一个包含当前会话错误信息的数字编号
curl_error — 返回一个包含当前会话错误信息的字符串
curl_exec — 执行一个curl会话
curl_getinfo — 获取一个curl连接资源句柄的信息
curl_init — 初始化一个curl会话
curl_multi_add_handle — 向curl批处理会话中添加单独的curl句柄资源
curl_multi_close — 关闭一个批处理句柄资源
curl_multi_exec — 解析一个curl批处理句柄
curl_multi_getcontent — 返回获取的输出的文本流
curl_multi_info_read — 获取当前解析的curl的相关传输信息
curl_multi_init — 初始化一个curl批处理句柄资源
curl_multi_remove_handle — 移除curl批处理句柄资源中的某个句柄资源
curl_multi_select — Get all the sockets associated with the cURL extension, which can then be "selected"
curl_setopt_array — 以数组的形式为一个curl设置会话参数
curl_setopt — 为一个curl设置会话参数
curl_version — 获取curl相关的版本信息
curl_init()函数的作用初始化一个curl会话,curl_init()函数唯一的一个参数是可选的,表示一个url地址。
curl_exec()函数的作用是执行一个curl会话,唯一的参数是curl_init()函数返回的句柄。
curl_close()函数的作用是关闭一个curl会话,唯一的参数是curl_init()函数返回的句柄。
$ch = curl_init("http://www.baidu.com/");
curl_exec($ch);
curl_close($ch);
curl_version()函数的作用是获取curl相关的版本信息,curl_version()函数有一个参数,不清楚是做什么的
print_r(curl_version())
curl_getinfo()函数的作用是获取一个curl连接资源句柄的信息,curl_getinfo()函数有两个参数,第一个参数是curl的资源句柄,第二个参数是下面一些常量:
$ch = curl_init("http://www.baidu.com/");
print_r(curl_getinfo($ch));
可选的常量包括:
CURLINFO_EFFECTIVE_URL
最后一个有效的url地址
CURLINFO_HTTP_CODE
最后一个收到的HTTP代码
CURLINFO_FILETIME
远程获取文档的时间,如果无法获取,则返回值为“-1”
CURLINFO_TOTAL_TIME
Temps passé sur le dernier transfert
CURLINFO_NAMELOOKUP_TIME
Temps passé sur la résolution du nom
CURLINFO_CONNECT_TIME
Temps passé à établir la connexion
CURLINFO_PRETRANSFER_TIME
Le temps entre l'établissement de la connexion et la préparation du transfert
CURLINFO_STARTTRANSFER_TIME
Le temps entre l'établissement de la connexion et le début du transfert
CURLINFO_REDIRECT_TIME
À le début du transfert de transaction Temps passé avant la redirection
CURLINFO_SIZE_UPLOAD
Valeur totale du volume de données téléchargées
CURLINFO_SIZE_DOWNLOAD
Valeur totale du volume de données téléchargé
CURLINFO_SPEED_DOWNLOAD
Vitesse de téléchargement moyenne
CURLINFO_SPEED_UPLOAD
Vitesse de téléchargement moyenne
CURLINFO_HEADER_SIZE
Taille de la partie d'en-tête
CURLINFO_HEADER_OUT
Envoyer la chaîne demandée
CURLINFO_REQUEST_SIZE
La taille de la requête en question
CURLINFO_SSL_VERIFYRESULT
Résultat de la vérification de la certification SSL demandée par le paramètre CURLOPT_SSL_VERIFYPEER
CURLINFO_CONTENT_LENGTH_DOWNLOAD
From Content-Length: field Read longueur du contenu téléchargé
CURLINFO_CONTENT_LENGTH_UPLOAD
Description de la taille du contenu téléchargé
CURLINFO_CONTENT_TYPE
La valeur "Content-type" du contenu téléchargé, NULL signifie que le serveur n'a pas envoyé de message valide "Content -Type: header"
La fonction curl_setopt() est utilisée pour définir les paramètres de session pour un curl. La fonction curl_setopt_array() est utilisée pour définir les paramètres de session pour un curl sous la forme d'un tableau.
$ch = curl_init();
$fp = fopen("example_homepage.txt", "w");
curl_setopt($ch, CURLOPT_FILE, $fp);
$ options = array(
CURLOPT_URL => 'http://www.baidu.com/',
CURLOPT_HEADER => false
);
curl_setopt_array($ch, $options);
curl_exec($ch);
curl_close($ch);
fclose($fp);
Les paramètres pouvant être définis sont :
CURLOPT_AUTOREFERER
Définir automatiquement les informations du référent dans l'en-tête
CURLOPT_BINARYTRANSFER
Lorsque CURLOPT_RETURNTRANSFER est activé, les données seront obtenues et renvoyées
CURLOPT_COOKIESESSION
Lorsque activé, curl ne transmettra qu'un seul cookie de session et ignorer les autres cookies Par défaut, Next curl renverra tous les cookies au serveur. Les cookies de session font référence aux cookies utilisés pour déterminer si la session côté serveur est valide.
CURLOPT_CRLF
Lorsque cette option est activée, convertit les caractères de saut de ligne Unix en caractères de retour chariot et de saut de ligne.
CURLOPT_DNS_USE_GLOBAL_CACHE
Lorsqu'il est activé, un cache DNS global est activé. Cet élément est thread-safe et sa valeur par défaut est true.
CURLOPT_FAILONERROR
Affiche le code d'état HTTP. Le comportement par défaut est d'ignorer les informations HTTP avec un nombre inférieur ou égal à 400.
CURLOPT_FILETIME
Lorsque activé, il essaiera. pour modifier les informations du document distant. Les informations sur le résultat seront renvoyées via l'option CURLINFO_FILETIME de la fonction curl_getinfo().
CURLOPT_FOLLOWLOCATION
Lorsqu'il est activé, le "Location:" renvoyé par le serveur sera placé dans l'en-tête et renvoyé au serveur de manière récursive. Utilisez CURLOPT_MAXREDIRS pour limiter le nombre de retours récursifs.
CURLOPT_FORBID_REUSE
Se déconnecte de force après avoir terminé l'interaction et ne peut pas être réutilisé.
CURLOPT_FRESH_CONNECT
Forcer l'obtention d'une nouvelle connexion pour remplacer celle du cache.
CURLOPT_FTP_USE_EPRT
TRUE pour utiliser EPRT (et LPRT) lors de téléchargements FTP actifs. Utilisez FALSE pour désactiver EPRT et LPRT et utiliser PORT uniquement.
Ajouté dans PHP 5.0.0.
CURLOPT_FTP_USE_EPSV
TRUE pour essayer d'abord une commande EPSV pour les transferts FTP avant de revenir à PASV. Définissez sur FALSE pour désactiver EPSV.
CURLOPT_FTPAPPEND
TRUE pour ajouter au fichier distant au lieu de l'écraser. .
CURLOPT_FTPASCII
Un alias de CURLOPT_TRANSFERTEXT Utilisez-le à la place.
CURLOPT_FTPLISTONLY
TRUE pour répertorier uniquement les noms d'un répertoire FTP >Lorsque cette option est activée, les informations du fichier d'en-tête seront affichées. être émis sous forme de flux de données.
CURLOPT_HTTPGET
Lorsqu'elle est activée, la méthode HTTP sera définie sur GET. Étant donné que GET est la valeur par défaut, elle n'est utilisée que lorsqu'elle est modifiée.
CURLOPT_HTTPPROXYTUNNEL
Lorsqu'il est activé, il sera transmis via le proxy HTTP.
CURLOPT_MUTE
Restaurez tous les paramètres modifiés dans la fonction curl à leurs valeurs par défaut.
CURLOPT_NETRC
Une fois la connexion établie, accédez au fichier ~/.netrc pour obtenir les informations de nom d'utilisateur et de mot de passe pour vous connecter au site distant.
CURLOPT_NOBODY
Lorsque cette option est activée, la partie du corps du code HTML ne sera pas affichée.
CURLOPT_NOPROGRESS
Lorsque activé, désactivez la barre de progression de la transmission curl. Le paramètre par défaut de cet élément est vrai
CURLOPT_NOSIGNAL
Lorsque activé, ignorez tous les signaux transmis par curl à. PHP. Cet élément est activé par défaut lors de la transmission multithread SAPI.
CURLOPT_POST
Lorsque activé, une requête POST régulière de type : application/x-www-form-urlencoded sera envoyée, tout comme une soumission de formulaire.
CURLOPT_PUT
Lorsqu'il est activé, HTTP est autorisé à envoyer des fichiers CURLOPT_INFILE et CURLOPT_INFILESIZE doivent être définis en même temps
CURLOPT_RETURNTRANSFER
Les informations obtenues par curl_exec() sont renvoyées dans. sous la forme d'un flux de fichiers au lieu d'une sortie directe.
CURLOPT_SSL_VERIFYPEER
FALSE pour empêcher cURL de vérifier le certificat du homologue. Des certificats alternatifs à vérifier peuvent être spécifiés avec l'option CURLOPT_CAINFO ou un répertoire de certificats peut être spécifié avec l'option CURLOPT_SSL_VERIFYHOST peut également devoir être TRUE ou FALSE. si CURLOPT_SSL_VERIFYPEER est désactivé (la valeur par défaut est 2) par défaut à partir de cURL 7.10.
CURLOPT_TRANSFERTEXT
TRUE pour utiliser le mode ASCII pour les transferts FTP. récupère les données en texte brut au lieu de HTML. Sur les systèmes Windows, il ne définira pas STDOUT en mode binaire.
CURLOPT_UNRESTRICTED_AUTH
Ajoutez en continu les informations de nom d'utilisateur et de mot de passe à plusieurs emplacements dans l'en-tête généré à l'aide de CURLOPT_FOLLOWLOCATION , même si le nom de domaine a changé.
CURLOPT_UPLOAD
Autoriser le transfert de fichiers lorsqu'il est activé
CURLOPT_VERBOSE
Lorsque activé, toutes les informations seront signalées et stockées dans STDERR ou dans le CURLOPT_STDERR spécifié
CURLOPT_BUFFERSIZE
La taille du cache est lue à chaque fois que les données sont obtenues, et cette valeur sera remplie à chaque fois.
CURLOPT_CLOSEPOLICY
Il s'agit soit de CURLCLOSEPOLICY_LEAST_RECENTLY_USED, soit de CURLCLOSEPOLICY_OLDEST. Il y en a trois autres, mais curl ne les prend pas encore en charge. .
CURLOPT_CONNECTTIMEOUT
Le temps d'attente avant d'initier une connexion S'il est défini sur 0, il n'y aura pas d'attente.
CURLOPT_DNS_CACHE_TIMEOUT
Définissez l'heure de sauvegarde des informations DNS en mémoire, la valeur par défaut est de 120 secondes.
CURLOPT_FTPSSLAUTH
La méthode d'authentification FTP (quand est activée) : CURLFTPAUTH_SSL (essayez d'abord SSL), CURLFTPAUTH_TLS (essayez d'abord TLS) ou CURLFTPAUTH_DEFAULT (laissez cURL décider).
CURLOPT_HTTP_VERSION
Définissez le protocole HTTP utilisé par curl, CURL_HTTP_VERSION_NONE (laissez curl décider par lui-même), CURL_HTTP_VERSION_1_0 (HTTP/1.0), CURL_HTTP_VERSION_1_1 (HTTP/1.1)
CURLOPT_HTTPAUTH
Méthode de vérification HTTP utilisée, valeur facultative Là sont : CURLAUTH_BASIC, CURLAUTH_DIGEST, CURLAUTH_GSSNEGOTIATE, CURLAUTH_NTLM, CURLAUTH_ANY, CURLAUTH_ANYSAFE Vous pouvez utiliser l'opérateur "|" pour séparer plusieurs valeurs. curl permet au serveur de choisir la meilleure valeur prise en charge. ATE | CURLAUTH_ANYSAFE Équivalent à CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM
CURLOPT_INFILESIZE
Définir la taille du fichier téléchargé
CURLOPT_LOW_SPEED_LIMIT
Lorsque la vitesse de transfert est inférieure à CURLOPT_LOW_SPEED_LIMIT, PHP LOPT_LOW_SPEED_TIME déterminera si c'est un transfert trop lent et annulé.
CURLOPT_LOW_SPEED_TIME
Le nombre de secondes pendant lequel le transfert doit être inférieur à CURLOPT_LOW_SPEED_LIMIT pour que PHP considère le transfert comme trop lent et abandonne le transfert lent et annulé.
Le nombre maximum de connexions autorisées, s'il est dépassé, CURLOPT_CLOSEPOLICY sera utilisé pour déterminer quelles connexions doivent être arrêtées
Spécifiez le nombre maximum de redirections HTTP. L'option est la même que CURLOPT_FOLLOWLOCATION utilisée ensemble.
Une quantité facultative utilisée pour spécifier le port de connexion
La ou les méthodes d'authentification HTTP à utiliser pour la connexion proxy Utilisez les mêmes masques de bits que ceux décrits dans. CURLOPT_HTTPAUTH. Pour l'authentification proxy, seuls CURLAUTH_BASIC et CURLAUTH_NTLM sont actuellement pris en charge.
Le numéro de port du proxy auquel se connecter peut également être défini dans CURLOPT_PROXY.
Soit CURLPROXY_HTTP (par défaut) soit CURLPROXY_SOCKS5.
Passez un décalage d'octet lors de la reprise du transfert (utilisé pour la reprise du transfert)
1 pour vérifier le existence d'un nom commun dans le certificat homologue SSL.
2 pour vérifier l'existence d'un nom commun et vérifier également qu'il correspond au nom d'hôte fourni.
La version SSL (2 ou 3 ) à utiliser. Par défaut, PHP essaiera de le déterminer lui-même, bien que dans certains cas, cela doive être défini manuellement.
Si après un certain temps spécifié par CURLOPT_TIMEVALUE S'il a été modifié, CURL_TIMECOND_IFMODSINCE est utilisé pour renvoyer la page. Si elle n'a pas été modifiée et que CURLOPT_HEADER est vrai, un en-tête "304 Not Modified" est renvoyé. Si CURLOPT_HEADER est faux, CURL_TIMECOND_ISUNMODSINCE est utilisé. >Définir le nombre maximum de secondes pendant lesquelles curl est autorisé à s'exécuter
Définir un horodatage utilisé par CURLOPT_TIMECONDITION Par défaut, CURL_TIMECOND_IFMODSINCE est utilisé
Le nom d'un fichier. détenant un ou plusieurs certificats avec lesquels vérifier l'homologue. Cela n'a de sens que lorsqu'il est utilisé en combinaison avec CURLOPT_SSL_VERIFYPEER
Définissez le contenu de la partie "Set-Cookie:" de la requête HTTP.
CURLOPT_COOKIEFILE
Le nom du fichier contenant les informations de cookie. Ce fichier de cookie peut être au format Netscape ou aux informations d'en-tête de style HTTP.
CURLOPT_COOKIEJAR
Une fois la connexion fermée, le nom du fichier pour stocker les informations sur les cookies
CURLOPT_CUSTOMREQUEST
Une méthode de requête personnalisée à utiliser à la place de « GET » ou « HEAD » lorsque vous effectuez une requête HTTP. Ceci est utile pour effectuer « DELETE » ou d'autres requêtes HTTP plus obscures. Les valeurs valides sont des éléments tels que « GET », « POST », « CONNECT », etc. Ligne de requête HTTP ici. Par exemple, saisir « GET /index.html HTTP/1.0rnrn » serait incorrect.
Remarque : ne faites pas cela sans vous assurer au préalable que le serveur prend en charge la méthode de requête personnalisée.
CURLOPT_EGBSOCKET
Comme CURLOPT_RANDOM_FILE, sauf un nom de fichier vers un socket Entropy Gathering Daemon.
CURLOPT_ENCODING
Le contenu de la partie "Accept-Encoding:" de l'en-tête. Les formats d'encodage pris en charge sont : "identité", "dégonfler", "gzip" ". S'il est défini sur une chaîne vide, cela signifie que tous les formats d'encodage sont pris en charge
CURLOPT_FTPPORT
La valeur qui sera utilisée pour obtenir l'adresse IP à utiliser pour l'instruction FTP « POST ». instruction. indique au serveur distant de se connecter à notre adresse IP spécifiée. La chaîne peut être une adresse IP simple, un nom d'hôte, un nom d'interface réseau (sous Unix) ou simplement un simple « - » pour utiliser l'adresse IP par défaut du système.
CURLOPT_INTERFACE
Le nom utilisé dans l'interface réseau externe, qui peut être un nom d'interface, une IP ou un nom d'hôte.
CURLOPT_KRB4LEVEL
KRB4 (Kerberos 4) paramètre de niveau de sécurité, qui peut être l'une des valeurs suivantes : "clear", "safe", "confidential", "private". La valeur par défaut est "privée". Lorsqu'elle est définie sur null, cela signifie que KRB4 est désactivé. Désormais, la sécurité KRB4 ne peut être utilisée que dans la transmission FTP.
CURLOPT_POSTFIELDS
L'opération "POST" en HTTP. Si vous souhaitez transférer un fichier, vous avez besoin d'un nom de fichier commençant par @
CURLOPT_PROXY
Définissez le serveur proxy HTTP via
CURLOPT_PROXYUSERPWD
pour vous connecter au serveur proxy, le Le format est "[nom d'utilisateur]:[mot de passe]" nom d'utilisateur et mot de passe.
CURLOPT_RANDOM_FILE
Définissez le nom du fichier pour stocker les graines de nombres aléatoires utilisées pour SSL
CURLOPT_RANGE
Définissez la plage de transmission HTTP Vous pouvez définir une plage de transmission sous la forme de ". X-Y". S'il existe plusieurs transferts HTTP, utilisez des virgules pour séparer plusieurs valeurs, telles que : "X-Y,N-M".
CURLOPT_REFERER
Définissez la valeur de la partie "Referer:" dans l'en-tête.
CURLOPT_SSL_CIPHER_LIST
Une liste de chiffrements à utiliser pour SSL Par exemple, RC4-SHA et TLSv1 sont des listes de chiffrement valides.
CURLOPT_SSLCERT
Transmettez un caractère contenant un certificat au format PEM. chaîne.
CURLOPT_SSLCERTPASSWD
Passez un mot de passe contenant le mot de passe nécessaire pour utiliser le certificat CURLOPT_SSLCERT.
CURLOPT_SSLCERTTYPE
Le format du certificat. Les formats pris en charge sont « PEM » (par défaut), « DER » et « ENG ».
CURLOPT_SSLENGINE
L'identifiant de la cryptographie. moteur de la clé SSL privée spécifiée dans CURLOPT_SSLKEY.
CURLOPT_SSLENGINE_DEFAULT
L'identifiant du moteur de chiffrement utilisé pour les opérations de chiffrement asymétriques.
CURLOPT_SSLKEY
Le nom d'un fichier contenant un Clé SSL.
CURLOPT_SSLKEYPASSWD
Le mot de passe secret nécessaire pour utiliser la clé SSL privée spécifiée dans CURLOPT_SSLKEY.
Remarque : Cette option contenant un mot de passe sensible, n'oubliez pas de conserver le script PHP dans lequel elle est contenue. sûr.
CURLOPT_SSLKEYTYPE
Le type de clé de la clé SSL privée spécifié dans CURLOPT_SSLKEY Les types de clés pris en charge sont « PEM » (par défaut), « DER » et « ENG ».
. CURLOPT_URL
L'adresse URL à obtenir peut également être définie dans la fonction curl_init() de PHP.
CURLOPT_USERAGENT
Une chaîne contenant un en-tête "user-agent" dans la requête HTTP.
CURLOPT_USERPWD
Passez le nom d'utilisateur et le mot de passe requis pour une connexion au format : "[nom d'utilisateur]:[mot de passe]".
CURLOPT_HTTP200ALIASES
Le paramètre ne gère plus les réponses HTTP 200 sous forme d'erreur, et le format est un tableau.
CURLOPT_HTTPHEADER
Définissez un tableau de contenu de transmission dans l'en-tête.
CURLOPT_POSTQUOTE
Un tableau de commandes FTP à exécuter sur le serveur après l'exécution de la requête FTP.
CURLOPT_QUOTE
Un tableau de commandes FTP à exécuter sur le serveur avant la requête FTP.
CURLOPT_FILE
définit l'emplacement du fichier de sortie. La valeur est un type de ressource. La valeur par défaut est STDOUT (navigateur).
CURLOPT_INFILE
L'adresse du fichier qui doit être lue lors du téléchargement de fichiers. La valeur est un type de ressource.
CURLOPT_STDERR
Définissez une adresse de sortie d'erreur, la valeur est un type de ressource, remplaçant le STDERR par défaut.
CURLOPT_WRITEHEADER
Définissez l'adresse du fichier où la partie d'en-tête est écrite et la valeur est un type de ressource.
CURLOPT_HEADERFUNCTION
Définir une fonction de rappel Cette fonction a deux paramètres Le premier est le handle de ressource de curl et le second est les données d'en-tête de sortie. La sortie des données d'en-tête doit s'appuyer sur cette fonction, qui renvoie la taille des données écrites.
CURLOPT_PASSWDFUNCTION
Définit une fonction de rappel avec trois paramètres Le premier est le handle de ressource curl, le second est une invite de mot de passe et le troisième paramètre est la longueur maximale autorisée du mot de passe. Renvoie la valeur du mot de passe.
CURLOPT_READFUNCTION
Définissez une fonction de rappel avec deux paramètres, le premier est le handle de ressource de curl et le second est les données lues. La lecture des données doit s'appuyer sur cette fonction. Renvoie la taille des données lues, par exemple 0 ou EOF.
CURLOPT_WRITEFUNCTION
Définissez une fonction de rappel avec deux paramètres, le premier est le handle de ressource curl et le second est les données écrites. L'écriture des données doit s'appuyer sur cette fonction. Renvoie la taille exacte des données écrites
La fonction de la fonction curl_copy_handle() est de copier tout le contenu et les paramètres d'une ressource de connexion curl
$ch = curl_init("http:// www.baidu.com/”);
$another = curl_copy_handle($ch);
curl_exec($another);
curl_close($another);
la fonction curl_error() est Renvoie une chaîne contenant des informations d'erreur pour la session en cours.
La fonction de curl_errno() est de renvoyer un nombre numérique contenant des informations sur l'erreur de la session en cours.
La fonction curl_multi_init() est utilisée pour initialiser une ressource de gestion de lots curl.
La fonction curl_multi_add_handle() est utilisée pour ajouter des ressources de handle curl individuelles à la session batch curl. La fonction curl_multi_add_handle() a deux paramètres. Le premier paramètre représente une ressource de handle de lot curl et le deuxième paramètre représente une ressource de handle curl distincte.
La fonction curl_multi_exec() est d'analyser un handle de lot curl. La fonction curl_multi_exec() a deux paramètres. Le premier paramètre représente une ressource de handle de lot et le deuxième paramètre est un paramètre de valeur de référence, indiquant le reste. Nombre de ressources de handle curl individuelles qui doivent être traitées.
La fonction curl_multi_remove_handle() représente la suppression d'une ressource de handle dans la ressource de handle de lot curl. La fonction curl_multi_remove_handle() a deux paramètres. Le premier paramètre représente une ressource de handle de lot curl et le deuxième paramètre représente un curl distinct. gérer la ressource.
La fonction curl_multi_close() est utilisée pour fermer une ressource de gestion par lots.
$ch1 = curl_init();
$ch2 = curl_init();
curl_setopt($ch1, CURLOPT_URL, « http://www.baidu.com/ »);
curl_setopt($ch1, CURLOPT_HEADER, 0);
curl_setopt($ch2, CURLOPT_URL, "http://www.google.com/");
curl_setopt($ch2, CURLOPT_HEADER, 0);
$mh = curl_multi_init();
curl_multi_add_handle($mh,$ch1);
curl_multi_add_handle($mh,$ch2);
do {
curl_multi_exec($mh,$flag);
} while ($flag > 0);
curl_multi_remove_handle($mh,$ch1);
curl_multi_remove_handle($mh,$ch2);
curl_multi_close($mh);
La fonction de curl_multi_getcontent() est de renvoyer le flux de texte de sortie obtenu lorsque CURLOPT_RETURNTRANSFER est défini.
La fonction curl_multi_info_read() est utilisée pour obtenir les informations de transmission pertinentes de la boucle actuellement analysée.
curl_multi_select()
Récupère toutes les sockets associées à l'extension cURL, qui peuvent ensuite être « sélectionnées »
url source :http://www.hebaodans.com /2009/07/p-h-p-c-u-r-l-yong-fa/
Recommandations associées :
php Explication détaillée des exemples de curl pour l'exploration des données
Explication détaillée de l'utilisation de CURL en 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!