本文实例讲述了php实现的Curl封装类Curl.class.php用法。分享给大家供大家参考。具体如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
|
<?php
//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用法:
1
2
|
$curl = new Curl();
$curl ->get( 'http://www.XXX.com/' );
|
POST用法:
1
2
|
$curl = new Curl();
$curl ->get( 'http://www.XXX.com/' , 'p=1&time=0' );
|
希望本文所述对大家的php程序设计有所帮助。