这是我项目中一直在用的一个方法
<?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操作
curl是利用URL语法在命令行方式下工作的文件传输工具。
curl同样支持HTTPS认证,HTTP POST方法, HTTP PUT方法, FTP上传, kerberos认证,HTTP上传, 代理服务器, cookies, 用户名/密码认证, 下载文件断点续传,上载文件断点续传,,http代理服务器管道( proxy tunneling), 甚至它还支持IPv6, socks5代理服务器,,通过http代理服务器上传文件到FTP服务器等等,功能十分强大。
Curl是由美国国防部高级研究项目代理资助,马萨诸塞州科技学院的David A. Kranz开发的Web开发语言, HTML语言的创建者Tim Berners-Lee也参与其中,并扮演了重要的角色。
Curl语言是一种编程语言,它被设计用于编写网络程序。它的目标是以一种单一的语言来取代HTML, Cascading Style Sheets(层叠样式表) and JavaScript , 虽然它目前并未在世界范围内被广泛使用,但在日本有一定的普及。
Curl不像HTML,它不是一种文本标记语言,但Curl语言既可以用于普通的文本显示,又可以用于实现大规模的客户端商业软件系统。Curl不利的一面是:需要向客户端安装运行环境。
用Curl写的程序既可以运行于浏览器中,又可以像普通客户端程序那样独立于浏览器运行,运行前需要安装SurgeRTE。"SurgeRTE"是一种与JAVA类似的跨平台运行环境 (runtime environment,RTE),其中包含浏览器的插件。它目前支持微软视窗(Microsoft Windows)操作系统 和 linux操作系统, 据传苹果机版将在不久的未来发布。
Curl语言便于学习,编程效率高,是一种支持多重继承,范型等数据类型的面向对象编程语言。目前国内已有一些公司开始涉及Curl语言的推广与开发。
Curl是高等数学中的运算符,代表旋度。多用于流体力学计算。
curl(α)=倒三角×阿尔法。倒三角为哈密顿算符,无法打出。
❸ php curl post怎么传值
1、设置请求方式为post
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); #设置post请求
2、设置POST请求内容和请求长度
curl_setopt($ch, CURLOPT_POSTFIELDS,$data);#设置post数据
更多PHP相关的知识,可以参考:PHP程序员,雷雪松的个人博客。
❹ php中什么是curl会话是用来做什么的有什么作用
curl 就是模拟浏览器请求的,比如获取获取远程的网页,虽然可以使用file_get_content函数 但是 curl支持cookie 自定义浏览器类型,来源 ip等等。
❺ PHP如何开启curl
开启php curl函数库的步骤
1).去掉windows/php.ini 文件里;extension=php_curl.dll前面的; /*用 echo phpinfo();查看php.ini的路径*/
2).把php5/libeay32.dll,ssleay32.dll复制到系统目录windows/下
3).重启apache
配置php支持curl
curl是一个利用URL语法在命令行方式下工作的文件传输工具。它支持很多协议:FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP。curl同样支持HTTPS认证,HTTP POST方法, HTTP PUT方法, FTP上传, kerberos认证, HTTP上传, 代理服务器, cookies, 用户名/密码认证, 下载文件断点续传, 上载文件断点续传, http代理服务器管道( proxy tunneling), 甚至它还支持IPv6, socks5代理服务器, 通过http代理服务器上传文件到FTP服务器等等,功能十分强大。Windows操作系统下的网络蚂蚁,网际快车(FlashGet)的功能它都可以做到。准确的说,curl支持文件的上传和下载,所以是一个综合传输工具,但是按照传统,用户习惯称curl为下载工具。
配置方法:
1、拷贝PHP目录中的libeay32.dll 和 ssleay32.dll 两个文件到 system32 目录。
2、修改php.ini:配置好 extension_dir ,去掉 extension = php_curl.dll 前面的分号。
---------------------------
php下扩展php_curl.dll的安装
---------------------------
已经内置有php_curl.dll,在ext目录下,此DLL用于支持SSL和zlib.
在php.ini中找到有extension=php_curl.dll, 去掉前面的注释.
设置extension_dir=c:phpext, 刷新PHP页面时报错, 说找不到模块php_curl.dll.
拷贝php_curl.dll 到windowssystem32,还是同样的错.
在网上找了一下,需要将:
libeay32.dll, ssleay32.dll, php5ts.dll, php_curl.dll
都拷贝到system32目录下,重启IIS即可.
❻ 除了curl php还能用什么发送http请求
curl
file_get_content
fopen
我所知道的就这三个。
❼ 如何用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扩展支持
开启curl扩展,这需要修改PHP的配置,在Windows 中只需简单三步:
将PHP安装文件夹下的三个文件php_curl.dll(可能在ext文件夹中),libeay32.dll,ssleay32.dll 复制到 %windir%/system32下。
3、重启php的服务(apache或者IIS),如重启IIS,运行iisreset即可。
❿ 如何在php中获取curl请求的请求头信息及相应头信息
<?php
$url='http://demo.zjmainstay.cn';
$ch=curl_init($url);
curl_setopt($ch,CURLOPT_HEADER,true);//返回头信息
curl_setopt($ch,CURLOPT_NOBODY,true);//不返回内容
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);//返回数据不直接输出
$content=curl_exec($ch);//执行并存储结果
curl_close($ch);
echo$content;
更多关于phpcURL的内容,请参考我的博客《PHPcURL应用》
http://www.zjmainstay.cn/php-curl