php的curl封装类用法实例
使用函数之前我们要需要把php curl模块打开(libeay32.dll, ssleay32.dll, php5ts.dll, php_curl.dll)
开启php curl函数库的步骤
1).去掉windows/php.ini 文件里;extension=php_curl.dll前面的; /*用 echo phpinfo();查看php.ini的路径*/
2).把php5/libeay32.dll,ssleay32.dll复制到系统目录windows/下
3).重启apache
代码如下:
代码如下:
include_once('curl.class.php');
$aa =new Curl('');
$curlOptions = array(
CURLOPT_URL => "http://www.xx.com/addTicket.jsp", //访问URL
CURLOPT_RETURNTRANSFER => true, //获取结果作为字符串返回
CURLOPT_REFERER => "ww.ww.ww/zw2",
CURLOPT_HTTPHEADER => array('X-FORWARDED-FOR:139.197.14.19', 'CLIENT-IP:127.0.0.1','Proxy-Client-IP:139.197.14.19','WL-Proxy-Client-IP:139.197.14.19' ),
CURLOPT_HEADER => 1, //获取返回头信息
//CURLOPT_SSL_VERIFYPEER => false, //支持SSL加密
CURLOPT_POST => true, //发送时带有POST参数
CURLOPT_POSTFIELDS => 'ids=897&Submit=%E6%8A%95%E7%A5%A8', //请求的POST参数字符串
CURLOPT_TIMEOUT => $aa->timeout //等待响应的时间
);
echo $aa->getResponseText($curlOptions);
cul处理类:
代码如下:
class Curl
{
public $cookieFile;
public $timeout = 160;
Public function __construct($dir){
$this->cookieFile = $this->getTemporaryCookieFileName($dir);
}
/**
* 设置CURL参数并发送请求,获取响应内容
* @access private
* @param $curlOptions array curl设置参数数组
* @return string|false 访问成功,按字符串形式返回获取的信息;否则返回false
*/
public function getResponseText($curlOptions) {
/* 设置CURLOPT_RETURNTRANSFER为true */
if(!isset($curlOptions[CURLOPT_RETURNTRANSFER]) || $curlOptions[CURLOPT_RETURNTRANSFER] == false) {
$curlOptions[CURLOPT_RETURNTRANSFER] = true;
}
/* 初始化curl模块 */
$curl = curl_init();
/* 设置curl选项 */
curl_setopt_array($curl, $curlOptions);
/* 发送请求并获取响应信息 */
$responseText = '';
try {
$responseText = curl_exec($curl);
if(($errno = curl_errno($curl)) != CURLM_OK) {
$errmsg = curl_error($curl);
throw new Exception($errmsg, $errno);
}
} catch (Exception $e) {
//exceptionDisposeFunction($e);
//print_r($e);
$responseText = false;
}
/* 关闭curl模块 */
curl_close($curl);
/* 返回结果 */
return $responseText;
}
/**
* 将Unicode字符串(u0000)转化为utf-8字符串,工具函数
* @access private
* @static
* @param $string string Unicode字符串
* @return string utf-8字符串
*/
public function unicodeToUtf8($string) {
$string = str_replace('u', '', strtolower($string));
$length = strlen($string) / 4;
$stringResult = '';
for($i = 0; $i
$charUnicodeHex = substr($string, $i * 4, 4);
$unicodeCode = hexdec($charUnicodeHex);
$utf8Code = '';
if($unicodeCode
$utf8Code = chr($unicodeCode);
} else if($unicodeCode
$utf8Code .= chr(192 + (($unicodeCode - ($unicodeCode % 64)) / 64));
$utf8Code .= chr(128 + ($unicodeCode % 64));
} else {
$utf8Code .= chr(224 + (($unicodeCode - ($unicodeCode % 4096)) / 4096));
$utf8Code .= chr(128 + ((($unicodeCode % 4096) - ($unicodeCode % 64)) / 64));
$utf8Code .= chr(128 + ($unicodeCode % 64));
}
$stringResult .= $utf8Code;
}
return $stringResult;
}
private function getTemporaryCookieFileName($dir='.') {
return (str_replace("", '/', tempnam($dir, 'tmp')));
}
}
例子2
代码如下:
//curl类
class Curl
{
function Curl(){
return true;
}
function execute($method, $url, $fields='', $userAgent='', $httpHeaders='', $username='', $password=''){
$ch = Curl::create();
if(false === $ch){
return false;
}
if(is_string($url) && strlen($url)){
$ret = curl_setopt($ch, CURLOPT_URL, $url);
}else{
return false;
}
//是否显示头部信息
curl_setopt($ch, CURLOPT_HEADER, false);
//
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
if($username != ''){
curl_setopt($ch, CURLOPT_USERPWD, $username . ':' . $password);
}
$method = strtolower($method);
if('post' == $method){
curl_setopt($ch, CURLOPT_POST, true);
if(is_array($fields)){
$sets = array();
foreach ($fields AS $key => $val){
$sets[] = $key . '=' . urlencode($val);
}
$fields = implode('&',$sets);
}
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
}else if('put' == $method){
curl_setopt($ch, CURLOPT_PUT, true);
}
//curl_setopt($ch, CURLOPT_PROGRESS, true);
//curl_setopt($ch, CURLOPT_VERBOSE, true);
//curl_setopt($ch, CURLOPT_MUTE, false);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);//设置curl超时秒数
if(strlen($userAgent)){
curl_setopt($ch, CURLOPT_USERAGENT, $userAgent);
}
if(is_array($httpHeaders)){
curl_setopt($ch, CURLOPT_HTTPHEADER, $httpHeaders);
}
$ret = curl_exec($ch);
if(curl_errno($ch)){
curl_close($ch);
return array(curl_error($ch), curl_errno($ch));
}else{
curl_close($ch);
if(!is_string($ret) || !strlen($ret)){
return false;
}
return $ret;
}
}
function post($url, $fields, $userAgent = '', $httpHeaders = '', $username = '', $password = ''){
$ret = Curl::execute('POST', $url, $fields, $userAgent, $httpHeaders, $username, $password);
if(false === $ret){
return false;
}
if(is_array($ret)){
return false;
}
return $ret;
}
function get($url, $userAgent = '', $httpHeaders = '', $username = '', $password = ''){
$ret = Curl::execute('GET', $url, '', $userAgent, $httpHeaders, $username, $password);
if(false === $ret){
return false;
}
if(is_array($ret)){
return false;
}
return $ret;
}
function create(){
$ch = null;
if(!function_exists('curl_init')){
return false;
}
$ch = curl_init();
if(!is_resource($ch)){
return false;
}
return $ch;
}
}
?>
用法
GET用法:
代码如下:
$curl = new Curl();
$curl->get('http://www.jb51.net/');
POST用法:
复制代码 代码如下:
$curl = new Curl();
$curl->get('http://www.jb51.net/', 'p=1&time=0′);

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

MinGW - GNU minimaliste pour Windows
Ce projet est en cours de migration vers osdn.net/projects/mingw, vous pouvez continuer à nous suivre là-bas. MinGW : un port Windows natif de GNU Compiler Collection (GCC), des bibliothèques d'importation et des fichiers d'en-tête librement distribuables pour la création d'applications Windows natives ; inclut des extensions du runtime MSVC pour prendre en charge la fonctionnalité C99. Tous les logiciels MinGW peuvent fonctionner sur les plates-formes Windows 64 bits.

Version Mac de WebStorm
Outils de développement JavaScript utiles

Listes Sec
SecLists est le compagnon ultime du testeur de sécurité. Il s'agit d'une collection de différents types de listes fréquemment utilisées lors des évaluations de sécurité, le tout en un seul endroit. SecLists contribue à rendre les tests de sécurité plus efficaces et productifs en fournissant facilement toutes les listes dont un testeur de sécurité pourrait avoir besoin. Les types de listes incluent les noms d'utilisateur, les mots de passe, les URL, les charges utiles floues, les modèles de données sensibles, les shells Web, etc. Le testeur peut simplement extraire ce référentiel sur une nouvelle machine de test et il aura accès à tous les types de listes dont il a besoin.

Dreamweaver Mac
Outils de développement Web visuel

Navigateur d'examen sécurisé
Safe Exam Browser est un environnement de navigation sécurisé permettant de passer des examens en ligne en toute sécurité. Ce logiciel transforme n'importe quel ordinateur en poste de travail sécurisé. Il contrôle l'accès à n'importe quel utilitaire et empêche les étudiants d'utiliser des ressources non autorisées.