导航:首页 > 编程语言 > curl怎么访问php

curl怎么访问php

发布时间:2022-08-21 16:58:16

php中CURL是如何使用的

在php中可以很容易的获取某个url的内容,只要通过file_get_contents,file或者readfile函数就能轻松实现,根本不必使用cURL:

② php如何使用CURL复用连接

HTTP1.0与HTTP1.1的一个很大的差别是HTTP1.1支持长连接。现实中有很多这个场景,就是请求了一个页面,然后这个页面的其他内容,例如CSS文件,JS文件都要从同一个服务(相同服务器,相同端口)上面获取。这些向相同服务器的请求如果能够复用连接,是很有利于提供网络性能。
总的来说,复用HTTP连接有两个好处:
1.节省系统端口资源(每一次连接都要使用端口,端口的资源是有限的)
2.节省创建socket连接的时间。

下面讲讲在PHP下面,如何使用CURL来复用连接:
curl是在一个handle里面复用连接的,所以这样就可以复用连接了:
$ch=curl_init();
$ret=curl_exec($ch);
......
$ret2=curl_exec($ch);
....
curl_close($ch);
在初始化跟关闭$ch资源时即可复用连接。

我这里写了两个函数,可以支持GET跟POST的请求,大家感兴趣可以看看。

functioncurl_get($url,$timeout=5){
global$g_handle;
if(empty($g_handle))$ch=curl_init();

$options=array(
CURLOPT_URL=>$url,
CURLOPT_RETURNTRANSFER=>true,
CURLOPT_FRESH_CONNECT=>false,
CURLOPT_FORBID_REUSE=>false,
CURLOPT_TIMEOUT=>$timeout
);
curl_setopt_array($g_handle,$options);

$ret=curl_exec($g_handle);
return$ret;
}


//可以支持POST数据,$post是一个数组,$timeout是超时时间。
functioncurl_post($url,$post=array(),$timeout=10){
global$g_handle;
if(empty($g_handle))$g_handle=curl_init();

$options=array(
CURLOPT_URL=>$url,
CURLOPT_POST=>true,
CURLOPT_RETURNTRANSFER=>true,
CURLOPT_FRESH_CONNECT=>false,
CURLOPT_FORBID_REUSE=>false,
CURLOPT_TIMEOUT=>$timeout,
CURLOPT_POSTFIELDS=>http_build_query($post)
);
if(empty($post))$options[CURLOPT_POST]=false;

curl_setopt_array($g_handle,$options);

$ret=curl_exec($g_handle);
return$ret;
}

③ php curl的几种用法

总结一下项目中用到curl的几种方式 1. php curl的默认调用方法,get方式访问url $ch = curl_init(); curl_setopt($ch, CURLOPT_HTTPHEADER, $header); //设置http头 curl_setopt($ch, CURLOPT_ENCODING, "gzip" ); //设置为客户端支持gzip压缩 curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30 ); //设置连接等待时间 curl_setopt($ch, CURLOPT_URL, $url ); curl_exec( $ch ); if ($error = curl_error($ch) ) {//出错处理return -1;}fclose($fp); $curl_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); //获取http返回值 if( $curl_code == 200 ) { //正常访问url}//异常 2. 设置http header支持curl访问lighttpd服务器Java代码$header[]= 'Expect:'; $header[]= 'Expect:'; 3. 设置curl,只获取http header,不获取body:Java代码curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_NOBODY, 1); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_NOBODY, 1); 或者只获取body:Java代码curl_setopt($ch, CURLOPT_HEADER, 0); // make sure we get the body curl_setopt($ch, CURLOPT_NOBODY, 0); curl_setopt($ch, CURLOPT_HEADER, 0); // make sure we get the body curl_setopt($ch, CURLOPT_NOBODY, 0); 4. 访问虚拟主机,需设置Host $header[]= 'Host: '.$host; 5. 使用post, put, delete等REStful方式访问urlpost:curl_setopt($ch, CURLOPT_POST, 1 ); put, delete: curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE"); //或者PUT,需要服务器支持这些方法。6. 保存下载内容为文件

④ PHP如何开启curl

windows主机出现“Call to undefined function curl_init”错误提示,没有定义的函数,也就是php还没打开对curl_init函数的支持。
开启php curl函数库的步骤如下:
<1.>打开php.ini,开启extension=php_curl.dll
<2.>检查php.ini的extension_dir值是哪个目录,检查有无php_curl.dll,没有的请下载php_curl.dll
<3.>再把php目录中的libeay32.dll,ssleay32.dll拷到c:\windows\system32里面
<4.>重启下 apache或者iis

⑤ PHP语言中php curl的几种应用方式

今天我们向大家介绍的是在PHP中的php curl的几种使用方式,希望对有需要的朋友有所帮助。

2. 设置http header支持php curl访问lighttpd服务器

3. 设置curl,只获取http header,不获取body:
或者只获取body:

4. 访问虚拟主机,需设置Host

5. 使用post, put, delete等REStful方式访问url
6. php curl保存下载内容为文件

⑥ curl 命令在PHP中怎么用

这是我项目中一直在用的一个方法

<?php
function curl($url,$params = array(),$header = array(),$timeout = 180){
if(empty($url)) return $url;
另外php后盾人那里有详细的视频

⑦ curl命令在PHP中怎么用

这是我项目中一直在用的一个方法

<?php
functioncurl($url,$params=array(),$header=array(),$timeout=180){
if(empty($url))return$url;

$curl=curl_init();
curl_setopt($curl,CURLOPT_URL,$url);//请求url地址

curl_setopt($curl,CURLOPT_HTTPHEADER,$header);//构造IP

if(!empty($params)&&count($params)>0){
curl_setopt($curl,CURLOPT_POST,true);

//RequestPayload格式数据
if(isset($params['is_json'])&&$params['is_json']===true){
unset($params['is_json']);
$params=json_encode($params);
}else{
$params=http_build_query($params);
}
curl_setopt($curl,CURLOPT_POSTFIELDS,$params);
}

//curl_setopt($curl,CURLOPT_HEADER,true);//是否返回响应头信息
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);//是否将结果返回
curl_setopt($curl,CURLOPT_FOLLOWLOCATION,true);//是否重定向
//curl_setopt($curl,CURLOPT_USERAGENT,'Mozilla/5.0(WindowsNT6.1;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/51.0.2704.106Safari/537.36');
curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,false);//只信任CA颁布的证书
//curl_setopt($curl,CURLOPT_CAINFO,$cacert);//CA根证书(用来验证的网站证书是否是CA颁布)
//curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,2);//检查证书中是否设置域名,并且是否与提供的主机名匹配
//从证书中检查SSL加密算法是否存在
curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,FALSE);
curl_setopt($curl,CURLOPT_HTTP_VERSION,CURL_HTTP_VERSION_1_0);
//curl_setopt($curl,CURLOPT_HTTPHEADER,array("Expect:"));
curl_setopt($curl,CURLOPT_IPRESOLVE,CURL_IPRESOLVE_V4);
curl_setopt($curl,CURLOPT_CONNECTTIMEOUT,$timeout);//用来告诉PHP脚本在成功连接服务器前等待多久(连接成功之后就会开始缓冲输出),这个参数是为了应对目标服务器的过载,下线,或者崩溃等可能状况;
curl_setopt($curl,CURLOPT_TIMEOUT,$timeout);//用来告诉成功PHP脚本,从服务器接收缓冲完成前需要等待多长时间。如果目标是个巨大的文件,生成内容速度过慢或者链路速度过慢,这个参数就会很有用。
//自动设置Referer
curl_setopt($curl,CURLOPT_AUTOREFERER,1);
//curl_setopt($curl,CURLOPT_COOKIEJAR,"D:phpStudyWWWcjcooBE66.tmp");////写入cookie信息
//setcookie('cookie_jar',$cookie_jar);//保存cookie路径
$data=curl_exec($curl);//执行
curl_close($curl);
return$data;
}
?>

⑧ 如何用PHP连接 curl方式的接口

-H表示curl命令的header,对应php中可以使用:
$header=array(
"X-Udemy-Client-Id:MYCLIENTID",
"X-Udemy-Client-Secret:MYCLIENTSECRET",
);

curl_setopt($ch,CURLOPT_HTTPHEADER,$header);//$ch=curl_init($url);

更多关于curl的应用可以参考我的博客《PHPcURL应用》
http://www.zjmainstay.cn/php-curl

⑨ php如何执行linux的curl指令

curl 不是即时的输入输出的命令,php 有运行时间限制, curl 运行会导致 curl 运行时间不够而被杀掉的。

php 有运行 linux 命令的函数,记得 system() 是一个,之后还有另外一个。注意这两个命令是可以在 php.ini/php.conf 里面设置禁止使用的。

⑩ PHP使用curl的问题

这是PHP对于curl的一个解释,简单地说就是,curl是一个库,能让你通过URL和许多不同种的服务器进行勾搭、搭讪和深入交流,并且还支持许多协议。并且人家还说了curl可以支持https认证、http post、ftp上传、代理、cookies、简单口令认证等等功能啦。

阅读全文

与curl怎么访问php相关的资料

热点内容
爱上北斗星男友在哪个app上看 浏览:413
主力散户派发源码 浏览:663
linux如何修复服务器时间 浏览:55
荣县优途网约车app叫什么 浏览:472
百姓网app截图是什么意思 浏览:222
php如何嵌入html 浏览:809
解压专家怎么传输 浏览:743
如何共享服务器的网络连接 浏览:132
程序员简易表白代码 浏览:166
什么是无线加密狗 浏览:62
国家反诈中心app为什么会弹出 浏览:67
cad压缩图打印 浏览:102
网页打开速度与服务器有什么关系 浏览:863
android开发技术文档 浏览:65
32单片机写程序 浏览:50
三星双清无命令 浏览:838
汉寿小程序源码 浏览:344
易助erp云服务器 浏览:532
修改本地账户管理员文件夹 浏览:419
python爬虫工程师招聘 浏览:285