2012-05-09 1 views
0

Я пытаюсь получить сайт user_id пользователя. Эти данные, по-видимому, нигде в профиле пользователя, и ничто в FAQ, а также не помогает или не указывает, как это найти. Единственный способ, который я могу найти, - запросить список сайтов по API, Итак, это то, что я пытаюсь сделать, и я возвращаю ответ json и, действительно, site_id любого сайта, на котором пользователь имеет там есть, и я просто хочу вывести это.get posterous site_id, php (либо preg_match или json_decode?) = No joy

Сначала я пытался с (где $ результат является ответом JSON)

$siteid = preg_match('"site_id": \d+', $result); 
echo $siteid; 

я ничего не получаю.

Затем я попытался с

json_decode($result); 
echo $result->site_id; 

Я до сих пор ничего не получить.

я могу видеть, в ответ JSon ($ результат),

"site_id": $somenumber; 

Почему я не могу извлечь эти данные с любой preg_match или json_decode? Есть ли другой, лучший метод?

Мой полный код вставляется в http://tonybaldwin.me/paste/index.php?3u

+0

Не могли бы вы опубликовать ответ, который вы получаете от API? – Jeroen

+1

Пара неправильных действий с вызовом 'preg_match()'. Во-первых, вам не хватает [разделителей] (http://php.net/manual/en/regexp.reference.delimiters.php). Кроме того, функция вернет количество совпадений (1 или 0), а не текст, который соответствует. С подпапкой захвата он может работать следующим образом: 'preg_match ('/" site_id ": (\ d +) /', $ result, $ matches); $ siteid = $ matches [1]; ' – Wiseguy

+0

Возврат json выглядит так: darn ... слишком большой, чтобы опубликовать в комментарии, pastebinned здесь: http://tonybaldwin.me/paste/index.php?7k – tonybaldwin

ответ

0

Posterous список-оф-сайтов API возвращает список (как можно было бы ожидать) отображений. Таким образом, вам нужно сначала выбрать нужный элемент списка, а затем прочитать его - id.

$result = json_decode($response); 
$first_result = $result[0]; 
$first_result_id = $first_result["id"]; 
echo $first_result_id;