php实现模拟post请求用法实例
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php实现模拟post请求用法实例相关的知识,希望对你有一定的参考价值。
参考技术A 本文实例讲述了php实现模拟post请求的方法。分享给大家供大家参考。具体如下:class
Request
public
static
function
post($url,
$post_data
=
'',
$timeout
=
5)//curl
$ch
=
curl_init();
curl_setopt
($ch,
CURLOPT_URL,
$url);
curl_setopt
($ch,
CURLOPT_POST,
1);
if($post_data
!=
'')
curl_setopt($ch,
CURLOPT_POSTFIELDS,
$post_data);
curl_setopt
($ch,
CURLOPT_RETURNTRANSFER,
1);
curl_setopt
($ch,
CURLOPT_CONNECTTIMEOUT,
$timeout);
curl_setopt($ch,
CURLOPT_HEADER,
false);
$file_contents
=
curl_exec($ch);
curl_close($ch);
return
$file_contents;
public
static
function
post2($url,
$data=array())//file_get_content
$postdata
=
http_build_query(
$data
);
$opts
=
array('http'
=>
array(
'method'
=>
'POST',
'header'
=>
'Content-type:
application/x-www-form-urlencoded',
'content'
=>
$postdata
)
);
$context
=
stream_context_create($opts);
$result
=
file_get_contents($url,
false,
$context);
return
$result;
public
static
function
post3($host,$path,$query,$others='')//fsocket
$post="POST
$path
HTTP/1.1\r\nHost:
$host\r\n";
$post.="Content-type:
application/x-www-form-";
$post.="urlencoded\r\n$others";
$post.="User-Agent:
Mozilla
4.0\r\nContent-length:
";
$post.=strlen($query)."\r\nConnection:
close\r\n\r\n$query";
$h=fsockopen($host,80);
fwrite($h,$post);
for($a=0,$r='';!$a;)
$b=fread($h,8192);
$r.=$b;
$a=(($b=='')?1:0);
fclose($h);
return
$r;
$url='http://******/con/Inter.php';
$data=Request::post($url,array('api'=>'tag_list'));
$data2=Request::post2($url,array('api'=>'tag_list'));
echo
$data;
希望本文所述对大家的php程序设计有所帮助。
php curl模拟post请求提交数据样例总结
注意:curl函数在php中默认是不被支持的,假设须要使用curl函数我们需在改一改你的php.ini文件的设置,找到php_curl.dll去掉前面的";"即可了
例1
代码例如以下 | 复制代码 |
<?php 接受php页面远程server: <?php |
例2
用CURL模拟POST请求抓取邮编与地址
完整代码:
代码例如以下 | 复制代码 |
#!/usr/local/php/bin/php php
<tr>[s]*?<td class="maintext">[sS]*?</td>[s]*? </tr>/‘, $data, $matches);
|
模拟POST请求 提交数据或上传文件 .
.
代码例如以下 | 复制代码 |
http://www.a.com/a.php 发送POST请求 function execUpload(){
} 2.http://www.b.com/handleUpload.php function handleUpload(){ |
■cURL 函数
■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句柄
■curl_multi_exec — 执行当前 cURL 句柄的子连接
■curl_multi_getcontent — 假设设置了CURLOPT_RETURNTRANSFER。则返回获取的输出的文本流
■curl_multi_info_read — 获取当前解析的cURL的相关传输信息
■curl_multi_init — 返回一个新cURL批处理句柄
■curl_multi_remove_handle — 移除curl批处理句柄资源中的某个句柄资源
■curl_multi_select — 等待全部cURL批处理中的活动连接
■curl_setopt_array — 为cURL传输会话批量设置选项
■curl_setopt — 设置一个cURL传输选项
■curl_version — 获取cURL版本号信息
以上是关于php实现模拟post请求用法实例的主要内容,如果未能解决你的问题,请参考以下文章
php curl如何直接转发当前php接收的headers?get请求如何直接转发get参数?post请求如何直接转发post参数?