2017-01-19 12 views
-2

хотят получить от конкретного пользователя Reddit некоторые данные.PHP и JSON для Reddit

На серверах Reddit имеется динамический JSON-файл, к которому можно получить доступ удаленно.

Путь JSON файл: http://www.reddit.com/user/tiagoperes/about.json

(где вы можете заменить «tiagoperes» в URL с любым пользователем, которого вы пытаетесь посмотреть) - спасибо Тома Чапин

Проблемы Я получаю сообщение об ошибке

http error 500: reddiant.com/reddit.php

Журнал ошибок:

PHP Warning: file_get_contents(https://www.reddit.com/user/tiagoperes/about.json): failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden on line 5

PHP Fatal error: Uncaught exception 'InvalidArgumentException' with message 'Passed variable is not an array or object, using empty array instead' on line 8

Код:

<?php 


$url = "https://www.reddit.com/user/tiagoperes/about.json"; 
$json = file_get_contents($url); 

$jsonIterator = new RecursiveIteratorIterator(
    new RecursiveArrayIterator(json_decode($json, TRUE)), 
    RecursiveIteratorIterator::SELF_FIRST); 

foreach ($jsonIterator as $key => $val) { 
    if(is_array($val)) { 
     echo "$key:\n"; 
    } else { 
     echo "$key => $val\n"; 
    } 
} 

(вдохновило в этом: http://codepad.org/Gtk8DqJE)

Решение: Задать для отладки.

В чем проблема прямо здесь?

Невозможно найти способ заставить его работать и должно быть довольно простым.

Спасибо!

+1

точно, что делает '** Проблема: ** страница не даже load.' значит – RiggsFolly

+0

ИТАК' file_get_contents() 'не на ** строка 7 ** кода, который вы нам показываете. ** Покажите нам реальный код, если вы хотите получить реальный ответ ** – RiggsFolly

+0

еще раз проверьте, было: наверх – brotherperes

ответ

1

Получил некоторые проблемы в первой процедуре, поэтому решил изменить подход.

Понял работать так:

<?php 
    $opts = array(
    'http'=>array(
    'method'=>"GET", 
    'header'=>"User-Agent: reddiant api script\r\n" 
    )); 

    $context = stream_context_create($opts); 
    $url = "http://www.reddit.com/user/tiagoperes/about.json"; 
    $json = file_get_contents($url, false, $context); 

    $result = json_decode($json, true); 

    // Result: 
    var_dump($result); 

    //echo data 
    echo $result['data']['name'];