1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
/**
* 模拟post进行url请求
* @param string $url
* @param string $param
*/
function
request_post(
$url
=
''
,
$param
=
''
) {
if
(
empty
(
$url
) ||
empty
(
$param
)) {
return
false;
}
$postUrl
=
$url
;
$curlPost
=
$param
;
$ch
= curl_init();
//初始化curl
curl_setopt(
$ch
, CURLOPT_URL,
$postUrl
);
//抓取指定网页
curl_setopt(
$ch
, CURLOPT_HEADER, 0);
//设置header
curl_setopt(
$ch
, CURLOPT_RETURNTRANSFER, 1);
//要求结果为字符串且输出到屏幕上
curl_setopt(
$ch
, CURLOPT_POST, 1);
//post提交方式
curl_setopt(
$ch
, CURLOPT_POSTFIELDS,
$curlPost
);
$data
= curl_exec(
$ch
);
//运行curl
curl_close(
$ch
);
return
$data
;
}
|
这是方法,下面是具体的调用案例。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
function
testAction(){
$url
=
'http://mobile.jschina.com.cn/jschina/register.php'
;
$post_data
[
'appid'
] =
'10'
;
$post_data
[
'appkey'
] =
'cmbohpffXVR03nIpkkQXaAA1Vf5nO4nQ'
;
$post_data
[
'member_name'
] =
'zsjs123'
;
$post_data
[
'password'
] =
'123456'
;
$post_data
[
'email'
] =
'zsjs123@126.com'
;
$o
=
""
;
foreach
(
$post_data
as
$k
=>
$v
)
{
$o
.=
"$k="
. urlencode(
$v
).
"&"
;
}
$post_data
=
substr
(
$o
,0,-1);
$res
=
$this
->request_post(
$url
,
$post_data
);
print_r(
$res
);
}
|
这样就提交请求,并且获取请求结果了。一般返回的结果是json格式的。
这里的post是拼接出来的。
也可以改造成下面的方式。
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
|
/**
* 模拟post进行url请求
* @param string $url
* @param array $post_data
*/
function
request_post(
$url
=
''
,
$post_data
=
array
()) {
if
(
empty
(
$url
) ||
empty
(
$post_data
)) {
return
false;
}
$o
=
""
;
foreach
(
$post_data
as
$k
=>
$v
)
{
$o
.=
"$k="
. urlencode(
$v
).
"&"
;
}
$post_data
=
substr
(
$o
,0,-1);
$postUrl
=
$url
;
$curlPost
=
$post_data
;
$ch
= curl_init();
//初始化curl
curl_setopt(
$ch
, CURLOPT_URL,
$postUrl
);
//抓取指定网页
curl_setopt(
$ch
, CURLOPT_HEADER, 0);
//设置header
curl_setopt(
$ch
, CURLOPT_RETURNTRANSFER, 1);
//要求结果为字符串且输出到屏幕上
curl_setopt(
$ch
, CURLOPT_POST, 1);
//post提交方式
curl_setopt(
$ch
, CURLOPT_POSTFIELDS,
$curlPost
);
$data
= curl_exec(
$ch
);
//运行curl
curl_close(
$ch
);
return
$data
;
}
|
将拼接也封装了起来,这样调用的时候就更简洁了。
1
2
3
4
5
6
7
8
9
10
11
12
|
function
testAction(){
$url
=
'http://mobile.jschina.com.cn/jschina/register.php'
;
$post_data
[
'appid'
] =
'10'
;
$post_data
[
'appkey'
] =
'cmbohpffXVR03nIpkkQXaAA1Vf5nO4nQ'
;
$post_data
[
'member_name'
] =
'zsjs124'
;
$post_data
[
'password'
] =
'123456'
;
$post_data
[
'email'
] =
'zsjs124@126.com'
;
//$post_data = array();
$res
=
$this
->request_post(
$url
,
$post_data
);
print_r(
$res
);
}
|
本文转自 gutaotao1989 51CTO博客,原文链接:http://blog.51cto.com/taoyouth/1918472