‘壹’ 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即可.
‘贰’ PHP中CURL是如何使用的
在php中可以很容易的获取某个url的内容,只要通过file_get_contents,file或者readfile函数就能轻松实现,根本不必使用cURL:
‘叁’ 在 php curl返回
给你个我写的curl方法。
/**
*curl模拟提交
*@param string $url 网址
*@param array/string $opt 提交参数
*@param string &$header 取回的头信息
*@param string $redirect 是否重定向
*@param boolean $ssl 验证https证书
*@return [type] 返回信息
*/
functioncurl($url,$opt='GET',&$header=null,$redirect=true,$ssl=false){
//初始化
$ch=curl_init($url);
//配置设置
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,$ssl);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,$ssl);
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,$redirect);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); #返回结果
curl_setopt($ch,CURLOPT_HEADER,true); #显示协议头
if(is_array($opt)){
//转小写
$opt=array_change_key_case($opt,CASE_LOWER);
//POST
if(isset($opt['type'])&&strtoupper($opt['type'])=='POST'){
curl_setopt($ch,CURLOPT_POST,true);
curl_setopt($ch,CURLOPT_POSTFIELDS,(isset($opt['data'])?$opt['data']:''));
}
//User-Agent
if(array_key_exists('ua',$opt))
curl_setopt($ch,CURLOPT_USERAGENT,$opt['ua']);
//Header
if(array_key_exists('header',$opt)){
curl_setopt($ch,CURLOPT_HTTPHEADER,(array)$opt['header']);
}
//Cookie
if(array_key_exists('cookie',$opt))
curl_setopt($ch,CURLOPT_COOKIE,$opt['cookie']);
//Referer
if(array_key_exists('referer',$opt))
curl_setopt($ch,CURLOPT_REFERER,$opt['referer']);
}else{
//仅POST
if(strtoupper((string)$opt)=='POST')
curl_setopt($ch,CURLOPT_POST,true);
}
$result=curl_exec($ch);
if(curl_errno($ch)){
$result=curl_error($ch);
}else{
//获取头长度
$length=curl_getinfo($ch,CURLINFO_HEADER_SIZE);
//取出头信息
$header=substr($result,0,$length);
//去掉头信息
$result=substr($result,$length);
}
//释放
curl_close($ch);
return$result;
}
‘肆’ 如何在PHP 5中添加curl
1:在php.ini中 找到;extension=php_curl.dll 去掉前面分号
2:把php 目录中的libeay32.dll,ssleay32.dll拷到c:\windows\system32里面
3:重启apache
‘伍’ 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如何执行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
‘玖’ 求助,PHP CURL的问题.curl
开启curl的步骤
1.在localhost站点下输出一下phpinfo,以此来检测php.ini的所在
(因为我在开启CURL的时候,是在php的安装目录配置php.ini,结果一直不生效,后来查了phpinfo才知道php.ini在apache
的配置文件里被我重定向了)
2.打开php.ini文件,搜索php_curl.dll,找到后删除前面的“;”,重启apache
3.如果测试还是找不到curl_init(),就将php目录下的ext目录里的php_curl.dll,和php目录下的libeay32.dll,php5ts.dll,ssleay32.dll
拷贝至c:\windows\system32下,重启apache
验证curl扩展是否开启,可在phpinfo()里查找
也可以使用程序验证
复制代码
代码如下:
// 1. 初始化
$ch = curl_init();
// 2.
设置选项,包括URL
curl_setopt($ch, CURLOPT_URL, "http://www.tupc1028.com");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch,
CURLOPT_HEADER, 0);
// 3. 执行并获取HTML文档内容
$output = curl_exec($ch);
//
4. 释放curl句柄
curl_close($ch);
$output = curl_exec($ch);
if ($output
=== FALSE) {
echo "cURL Error: " . curl_error($ch);
}
‘拾’ php中设置Curl的问题 PHP版本 5。3。3
1.写一个phpinfo查看文件
<?php
phpinfo();?>
2.然后在phpinfo里面搜索
php.ini
找到php.ini的位置,确认你修改的php.ini和实际运行的php.ini是一个文件。
3.检测php.ini中的ext目录是否为你放php_curl.dll的目录
4.检测php的ext目录是否在系统环境变量中