这是我项目中一直在用的一个方法
<?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;
}
?>
⑵ linux如何用shell运行一个php脚本
在 Linux 下执行 php 脚本时通常是使用以下命令(视php安装路径而定):
/usr/local/php/bin/phptest.php
另外,为简化输入可把此php执行程序 到系统命令目录下:
cp/usr/local/php/bin/php/usr/sbin/
验证:输入以下命令,如正确获取 php 版本,说明操作成功。
php-v
参考:
http://www.360doc.com/content/10/1124/15/4330887_72030254.shtml
⑶ shell curl 返回值 是什么意思
shell curl 返回值 是什么意思
shell curl 返回的是json类型的数据,接收返回的结果后再转换成正常的数据。
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、C#、Java、JavaScript、Perl、Python等)。这些特性使JSON成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成(网络传输速率)。
⑷ php如何执行linux的curl指令
curl 不是即时的输入输出的命令,php 有运行时间限制, curl 运行会导致 curl 运行时间不够而被杀掉的。
php 有运行 linux 命令的函数,记得 system() 是一个,之后还有另外一个。注意这两个命令是可以在 php.ini/php.conf 里面设置禁止使用的。