很多站长朋友们都不太清楚phpcurl没有返回,今天小编就来给大家整理phpcurl没有返回,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 php curl 返回空 2、 php curl_exec无法返回结果 3、 php curl 取不到数据 帮我看下 是为什么 4、 在 php curl返回 5、 php curl访问链接返回空,打印没有error,但是浏览器打开有数据 php curl 返回空一、使用curl调用远程PHP文件来获取相应数据
二、问题
调用远程的PHP文件后,print_r($result)死活打印不出来东西。
三、解决
原来是自己在远程PHP文件中使用了return返回json数据,改为了echo 后就可以了
害我浪费了几个小时时间,记录一下。
php curl_exec无法返回结果你要显示是不是需要这个参数,你试试
// 设置curl 参数,要求结果保存到变量中还是输出到屏幕上,false直接输出到屏幕上。
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$return_data = curl_exec($ch);
curl_close($ch);
var_dump($return_data);
php curl 取不到数据 帮我看下 是为什么有以下几种可能:
1、服务器端确实没有数据返回;
2、curl写错了;
3、试试下面这个,我在用的
function curl($url,$post = 'POST',$data = array()){
$ch = curl_init();
$headers[] = "Accept-Charset: utf-8";
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $post);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_SSLVERSION, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
curl_close($ch);
return json_decode($result,1);
}
在 php curl返回给你个我写的curl方法。
/**
* curl模拟提交
* @param string $url 网址
* @param array/string $opt 提交参数
* @param string $header 取回的头信息
* @param string $redirect 是否重定向
* @param boolean $ssl 验证https证书
* @return [type] 返回信息
*/
function curl($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 curl访问链接返回空,打印没有error,但是浏览器打开有数据有可能对方加了抓取限制,对方判断是curl的输出空string
你可以试试带cookie、头信息和经常更换ip之类的
关于phpcurl没有返回的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于phpcurl没有返回 php获取接口返回值的详细内容...