导航:首页 > 编程语言 > phpcurl模拟get请求

phpcurl模拟get请求

发布时间:2022-08-22 21:03:38

⑴ 请教php curl模拟get请求与直接在浏览器访问网址有什么区别

curl方式你可以认为是服务端的ajax请求,服务端可以获取curl的结果,然后处理自己的业务,至于直接在浏览器访问,就不用说了,直接显示出请求的结果

⑵ PHP curl模拟POST问题,为什么明明是模拟的是POST,firebug仍显示GET

firebug查看的是你通过浏览器发出的请求, curl是php做的,它是看不到的
你就把curl当成一个浏览器就行了

你可以在curl的接收端打印$_SERVER['REQUEST_METHOD']
或者用fidder抓包工具看下就看到了

⑶ php中怎样用curl来模拟页面中点击第二页的按钮发送请求

int main()
{
int m, n;
while (cin >> n >> m)
{
UFSet uset(100000);
uset.makeSet(n);//初始化
//接收m对关系
int x = 0, y = 0;
for (int i = 0; i<m; i++)
{
cin >> x >> y;//注:这里数组下标代表人的对应编号
uset.unionSet(x, y);
}
cout << uset.getSets(n) << endl;

}
return 0;
}

⑷ php模拟get和post的几种方法

方法一:
[php]viewplain
$re=file_get_contents($url);
print_r($re);

方法二:
[php]viewplain
$ch=curl_init("http://www.jb51.net/");
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_BINARYTRANSFER,true);
$output=curl_exec($ch);
$fh=fopen("out.html",'w');
fwrite($fh,$output);
fclose($fh);

方法三:
其中把post一块包含进来了
[php]viewplain
functiondfopen($url,$limit=0,$post='',$cookie='',$bysocket=FALSE,$ip='',$timeout=15,$block=TRUE,$encodetype='URLENCODE'){
$return='';
$matches=parse_url($url);
$host=$matches['host'];
$path=$matches['path']?$matches['path'].($matches['query']?'?'.$matches['query']:''):'/';
$port=!empty($matches['port'])?$matches['port']:80;

if($post){
$out="POST$pathHTTP/1.0 ";
$out.="Accept:*/* ";
$out.="Accept-Language:zh-cn ";
$boundary=$encodetype=='URLENCODE'?'':';'.substr($post,0,trim(strpos($post," ")));
$out.=$encodetype=='URLENCODE'?"Content-Type:application/x-www-form-urlencoded ":"Content-Type:multipart/form-data$boundary ";
$out.="User-Agent:$_SERVER[HTTP_USER_AGENT] ";
$out.="Host:$host ";
$out.='Content-Length:'.strlen($post)." ";
$out.="Connection:Close ";
$out.="Cache-Control:no-cache ";
$out.="Cookie:$cookie ";
$out.=$post;
}else{
$out="GET$pathHTTP/1.0 ";
$out.="Accept:*/* ";
$out.="Accept-Language:zh-cn ";
$out.="User-Agent:$_SERVER[HTTP_USER_AGENT] ";
$out.="Host:$host ";
$out.="Connection:Close ";
$out.="Cookie:$cookie ";
}
$fp=@fsockopen(($ip?$ip:$host),$port,$errno,$errstr,$timeout);
if(!$fp){
return'';
}else{
stream_set_blocking($fp,$block);
stream_set_timeout($fp,$timeout);
@fwrite($fp,$out);
$status=stream_get_meta_data($fp);
if(!$status['timed_out']){
while(!feof($fp)){
if(($header=@fgets($fp))&&($header==" "||$header==" ")){
break;
}
}
$stop=false;
while(!feof($fp)&&!$stop){
$data=fread($fp,($limit==0||$limit>8192?8192:$limit));
$return.=$data;
if($limit){
$limit-=strlen($data);
$stop=$limit<=0;
}
}
}
@fclose($fp);
return$return;
}
}

⑸ 对于https协议的网站,可以用php 的curl来模拟get请求和post请求吗,能得到返回值吗

可以。
CURLOPT_PROTOCOLS
CURLPROTO_* 的位域指。如果被启用,位域值会限定libcurl在传输过程中有哪些可使用的协议。这将允许你在编译libcurl时支持众多协议,但是限制只是用它们中被允许使用的一个子集。默认libcurl将会使用全部它支持的协议。参见 CURLOPT_REDIR_PROTOCOLS .
可用的协议选项为:CURLPROTO_HTTP、CURLPROTO_HTTPS、CURLPROTO_FTP、CURLPROTO_FTPS、CURLPROTO_SCP、CURLPROTO_SFTP、CURLPROTO_TELNET、CURLPROTO_LDAP、CURLPROTO_LDAPS、CURLPROTO_DICT、CURLPROTO_FILE、CURLPROTO_TFTP、CURLPROTO_ALL

对了,可定能得到返回值

⑹ php curl get 参数

$cu = curl_init();
curl_setopt($cu, CURLOPT_URL, $url);
curl_setopt($cu, CURLOPT_RETURNTRANSFER, 1);
$ret = curl_exec($cu);
curl_close($cu);
其中$url变量可以是完整的URL+参数

⑺ PHP curl get cookies

跟GET/POST没啥关系,直接用
curl_setopt($ch,CURLOPT_COOKIEJAR,$cookie_file);
存储提交后得到的cookie数据即可

更多PHPcURL的内容,请参考我的博客《PHPcURL实现模拟登录与采集使用方法详解教程》

⑻ 微信公众平台的开发能否用php 的curl进行模拟get提交

可以模拟登录微信公众平台,curl一般都用post方式
也可以用httpclient这个类进行模拟

⑼ php curl如何直接转发当前php接收的headersget请求如何直接转发get参数post请求如何直接转发post参数

本文实例讲述了php使用CURL模拟GET与POST向微信接口提交及获取数据的方法。分享给大家供大家参考,具体如下:
php CURL函数可以模仿用户进行一些操作,如我们可以模仿用户提交数据也可以模仿用户进行网站访问了,下面我们来介绍利用CURL模拟进行微信接口的GET与POST例子,例子非常的简单就两个:
Get提交获取数据
/**
* @desc 获取access_token
* @return String access_token
*/
function getAccessToken(){
$AppId = '1232assad13213123';
$AppSecret = '2312312321adss3123213';
$getUrl = 'htq.com/cgi-bin/token?grant_type=client_credential&appid='.$AppId.'&secret='.$AppSecret;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $getUrl);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURL_SSLVERSION_SSL, 2);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
$data = curl_exec($ch);
$response = json_decode($data);
return $response->access_token;
}

post提交获取数据
/**
* @desc 实现天气内容回复
*/
public function testWeixin(){
$access_token = $this->getAccessToken();
$customMessageSendUrl = 'ht.qq.com/cgi-bin/message/custom/send?access_token='.$access_token;
$description = '今天天气的详细信息(从第三方获取)。';
$url = ttpr.com/';
$picurl = 'her.com/';
$postDataArr = array(
'touser'=>'OPENID',
'msgtype'=>'news',
'news'=>array(
'articles'=>array(
'title'=>'当天天气',
'description'=>$description,
'url'=>$url,
'picurl'=>$picurl,
),
),
);
$postJosnData = json_encode($postDataArr);
$ch = curl_init($customMessageSendUrl);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postJosnData);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
$data = curl_exec($ch);
var_mp($data);
}

例子相对来说比较简单也没有什么好详细分析的了,大家照抄就可以实现我们想要的功能了.

⑽ 如何通过php的curl模拟ajax请求,获取其返回值

这个需要配合js,打开一个html页面,首先js用ajax请求页面,返回第一个页面信息确定处理完毕(ajax有强制同步功能),ajax再访问第二个页面。(或者根据服务器状况,你可以同时提交几个URL,跑几个相同的页面)
参数可以由js产生并传递url,php后台页面根据URL抓页面。然后ajax通过php,在数据库或者是哪里设一个标量,标明检测到哪里。由于前台的html页面执行多少时候都没问题,这样php的内存限制和执行时间限制就解决了。
因为不会浪费大量的资源用一个页面来跑一个瞬间500次的for循环了。(你的500次for循环死了原因可能是获取的数据太多,大过了php限制的内存)
不过印象中curl好像也有强制同步的选项,就是等待一个抓取后再执行下一步。但是这个500次都是用一个页面线程处理,也就是说肯定会远远大于30秒的默认执行时间。

阅读全文

与phpcurl模拟get请求相关的资料

热点内容
修改本地账户管理员文件夹 浏览:416
python爬虫工程师招聘 浏览:283
小鹏p7听音乐哪个app好 浏览:354
linux下的防火墙 浏览:954
凌达压缩机美芝压缩机 浏览:350
php后面代码不执行 浏览:236
微我手机怎样设置应用加密 浏览:202
条件加密 浏览:628
androidstudio设置中文 浏览:641
汽车换压缩机能提升制冷 浏览:628
安卓开发配什么电脑 浏览:607
linux下php模块 浏览:78
阿里云服务器终端在哪里 浏览:146
app纸有什么用 浏览:224
cuteftp命令 浏览:506
最开始的编程语言是什么 浏览:759
at远程命令 浏览:492
云服务器哪家好点 浏览:213
android系统源码阅读 浏览:931
dumpjava分析工具 浏览:680