0
<?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>';
    }
?>

为什么我在本地缓存的 json 中得到“假”?那 json_encode 错了吗?

4

1 回答 1

0

尝试在 curl 选项中禁用证书验证:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

您可以通过查看以下内容来检查有关 curl 错误的详细信息:

curl_error($ch)

...这可能会报告证书验证问题。

于 2013-06-06T21:26:39.993 回答