dotcraq3249 2013-06-06 21:20
浏览 65
已采纳

试图抓取一个json文件在本地缓存它

<?php
$json_url = 'https://api.feedbin.me/v2/entries.json';

$username = 'username';  // authentication
$password = 'password';  // authentication

$ch = curl_init( $json_url );

$options = array(
CURLOPT_RETURNTRANSFER => true,
CURLOPT_USERPWD => $username . ":" . $password   // authentication
);

// Setting curl options
curl_setopt_array( $ch, $options );

$result =  curl_exec($ch); // Getting JSON result string

$cache_feedbin = '/BLAH/'.sha1($result).'.json';

    if(file_exists($cache_feedbin) && filemtime($cache_feedbin) > time() - 1000){
        // if a cache file newer than 1000 seconds exist, use it
        $data_feedbin = file_get_contents($cache_feedbin);
    } else {
        $data_feedbin = file_get_contents($result);
        file_put_contents($cache_feedbin,json_encode($data_feedbin));
    }

    foreach (array_slice(json_decode($data_feedbin), 0, 5) as $obj) {
        $feedbin_title = $obj->title;
        $feedbin_url = $obj->url;
        echo '<li><a href="', $feedbin_url, '">', $feedbin_title, '</a></li>';
    }
?>

Why I'm getting "false" in the locally cached json? Is that json_encode wrong?

  • 写回答

1条回答 默认 最新

  • duanchen6423 2013-06-06 21:26
    关注

    Try disabling certificate validation in your curl options:

    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    

    You can check for specifics on curl errors by looking at:

    curl_error($ch)
    

    ...which will probably report a certificate validation problem.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)