Извлечение данных с веб-сайта с использованием PHP - PullRequest
2 голосов
/ 01 марта 2011

Я пытаюсь заставить PHP извлечь TOKEN (верхний регистр), USERID (верхний регистр) и USER NAME (верхний регистр) из веб-страницы со следующим текстом.

{
   "rsp":{
      "stat":"ok",
      "auth":{
         "token":"**TOKEN**",
         "perms":"read",
         "user":{
            "id":"**USERID**",
            "username":"**USER NAME**",
            "fullname":"**NAME OF USER**"
         }
      }
   }
}

(Это из API RTM, получающего токен аутентификации пользователя).

Как бы я поступил так? Спасибо!

EDIT:

как я могу получить название задачи "Купи молоко!" & срок выполнения задачи "2011-02-28T .." с использованием json_decode и php здесь? Спасибо!

{
   "rsp":{
      "stat":"ok",
      "tasks":{
         "rev":"REV_NUMBER",
         "list":{
            "id":"ID_NUMBER",
            "taskse­­ries":{
               "id":"ID_NUMBER",
               "created":"2010-11-16T00:01:50Z",
               "modified":"2011-02-28T05:09:36Z",
               "name":"Buy Milk!",
               "source":"js",
               "url":"",
               "location_id":"",
               "rrule":{
                  "every":"1",
                  "$t":"FREQ=W­­EEKLY;INTERVAL=1"
               },
               "tags":[

               ],
               "participants":[

               ],
               "notes":[

               ],
               "task":{
                  "id":"ID_NUMBER"                  ­­,
                  "due":"2011-02-28T05:00:00Z",
                  "has_due_time":"0",
                  "added":"2011-02-21T05:04:49Z",
                  "completed":"",
                  "deleted":"",
                  "priority":"2",
                  "postponed":"0",
                  "estima­­te":""
               }
            }
         }
      }
   }
}

Ответы [ 2 ]

2 голосов
/ 01 марта 2011

Как предложил Делан, используйте json_decode. Вот пример того, как вы будете использовать json_decode для извлечения необходимой вам информации.

// your json string
$string = '{"rsp":{"stat":"ok","auth":{"token":"**TOKEN**","perms":"read","user":{"id":"**USERID**","username":"**USER NAME**","fullname":"**NAME OF USER**"}}}}';

// parse json string to an array
$array = json_decode($string, true);

// auth token
echo $array['rsp']['auth']['token'];

// user details
echo $array['rsp']['auth']['user']['id'];
echo $array['rsp']['auth']['user']['username'];
echo $array['rsp']['auth']['user']['fullname'];

ОБНОВЛЕНИЕ Я обновил код, чтобы использовать параметр $ assoc json_decode для преобразования из объекта в массив ассоциаций.

ДРУГОЕ ОБНОВЛЕНИЕ Чтобы ответить на ваш обновленный вопрос ..

как бы я получил название задачи "Купи молоко!" & срок выполнения задачи "2011-02-28T .." с использованием json_decode и php здесь? Спасибо!

Этот код будет работать, чтобы получить значения, которые вы хотите.

//string(9) "Buy Milk!"
echo $array['rsp']['tasks']['list']['taskseries']['name'];

// string(20) "2011-02-28T05:00:00Z"
echo $array['rsp']['tasks']['list']['taskseries']['task']['due'];

Этот код не идеален, но он выполняет работу за вас.

0 голосов
/ 01 марта 2011

Если строка JSON, json_decode в PHP поможет. Это было реализовано в PHP 5.2.0.

http://www.php.net/manual/en/function.json-decode.php

...