有没有一种简单的方法可以在我的网站上显示特定的值,例如"我要把这个作为我的新闹钟铃声"来自以下reddit注释.json文件:https://www.reddit.com/r/funny/comments/mi0lic/.json
我发现了一个简单的php脚本,可以与reddit用户.json文件一起使用:
... $content = file_get_contents("https://www.reddit.com/user/joshfolgado/about.json");
$result = json_decode($content);
print_r( $result->data->subreddit->title ); ...
但我无法使用comment.json文件来实现这一点:
... $content = file_get_contents("https://www.reddit.com/r/funny/comments/mi0lic/.json");
$result = json_decode($content);
print_r( $result->data->children->data->title ); ...
任何其他简单的脚本也可以完成这项工作。
问题可以在这里找到:
print_r( $result->data->children->data->title ); ...
$result->data->children
是一个数组,包含API返回的所有注释。
我们应该"搜索"所有这些注释(在您的示例中,只有1(以查找所需的对象。
考虑下面的代码示例,我已经使用array_filter
来自定义筛选在$result->data->children
数组中找到的对象。
<?php
// Search string
$search = 'Gonna make this my new alarm ringtone';
// Get json using CURL
$json = getJson('t3_mi0lic');
// Search ->children
$res = array_filter($json->data->children, function ($child) use ($search) {
// Include if ->data->title qeuals search
return $child->data->title === $search;
});
// Show result
var_dump($res);
// Get JSON by $userId
function getJson($userId) {
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api.reddit.com/api/info/?id=' . $userId,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_USERAGENT => 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.0.3705; .NET CLR 1.1.4322)'
));
$response = curl_exec($curl);
curl_close($curl);
return json_decode($response);
}