2013-07-26 2 views
2

Вот моя проблема. Ниже у меня есть скрипт Api, который вручную вводит объект xml [user_token] для доступа к информации пользователя на основе токена. Таким образом, чтобы ввести каждый атрибут из массива я использовал кодPhp SimpleXMLElement Объект переменной

foreach ($xml->result->data->users->entries->user_token as $user_token1) 
    echo $user_token1; 

которая затем pluged в

if ($oneall_curly->get (SITE_DOMAIN . "https://stackoverflow.com/users/" . $user_token1 . ".xml")) 
{ 
$result = $oneall_curly->get_result(); 
print_r (($result->body)); 
} 

Таким образом, после этого я не уверен, что это неправильно, я искал в течение многих ответов на оба стека переполнения, а также php.net. Я, конечно, не эксперт, просто новичок в программировании php, но, безусловно, буду ценить понимание этой проблемы или помощь в создании кода, который создает переменную $ user_token1

Спасибо, что очень понравилось!

SimpleXMLElement Object 
(
[request] => SimpleXMLElement Object 
    (
     [date] => Fri, 26 Jul 2013 12:18:36 +0200 
     [resource] => /users.xml??page=1&order_direction=desc 
     [status] => SimpleXMLElement Object 
      (
       [flag] => success 
       [code] => 200 
       [info] => Your request has been processed successfully 
      ) 

    ) 

[result] => SimpleXMLElement Object 
    (
     [data] => SimpleXMLElement Object 
      (
       [users] => SimpleXMLElement Object 
        (
         [pagination] => SimpleXMLElement Object 
          (
           [current_page] => 1 
           [total_pages] => 1 
           [entries_per_page] => 500 
           [total_entries] => 2 
           [order] => SimpleXMLElement Object 
            (
             [field] => date_creation 
             [direction] => desc 
            ) 

          ) 

         [count] => 2 
         [entries] => Array 
          (
           [0] => SimpleXMLElement Object 
            (
             [user_token] => 11111111-4444-bbbb-1111-111111111111 
             [date_creation] => Wed, 24 Jul 2013 00:33:28 +0200 
             [date_last_login] => Wed, 24 Jul 2013 02:08:44 +0200 
             [num_logins] => 2 
            ) 

           [1] => SimpleXMLElement Object 
            (
             [user_token] => 22222222-5555-aaaa-2222-333333333333 
             [date_creation] => Wed, 24 Jul 2013 00:28:56 +0200 
             [date_last_login] => Thu, 25 Jul 2013 07:08:20 +0200 
             [num_logins] => 4 
            ) 

          ) 

        ) 

      ) 

    ) 

)

Это объект SimpleXML У меня есть выход из предыдущего кода, и это

$raw = "http://../../file.php"; 
$xml = simplexml_load_file($raw); 

echo '<pre>'; 
print_r($xml); 
echo '</pre>'; 
return $xml; 


// Get an element by its id attribute 


// or, loop over all of the <rate> elements 
foreach ($xml->result->data->users->entries->user_token as $user_token1) 
    echo $user_token1; 





if ($oneall_curly->get (SITE_DOMAIN . "https://stackoverflow.com/users/" . $user_token1 . ".xml")) 
{ 
    $result = $oneall_curly->get_result(); 
    print_r (($result->body)); 
} 
//Error 
else 
{ 
$result = $oneall_curly->get_result(); 
echo "Error: " . $result->http_info . "\n"; 
} 



?> 
+0

$ oneall_curly является переменной PHP, созданный Oneall социального входа SDK комплект – Fitz

+0

я сделал print_r ($ user_token1-> тела); и он ничего не показывает – Fitz

+0

я var_dump ($ user_token1) это в # 'ы вместе 11111111-4444-BBBB-1111-11111111111122222222-5555-аааа-2222-333333333333 { "Ответ": { "запрос": {» date ":" Пт, 26 июл 2013 13:32:14 +0200 "," resource ":" \/users \/"," status ": {" flag ":" error "," code ": 404," info ":" Указанный ресурс не существует: http: \/\/docs.oneall.com \/"}}}} object (SimpleXMLElement) # 6 (4) {[" user_token "] => string (36) "22222222-5555-aaaa-2222-333333333333" ["date_creation"] => string (31) "Wed, 24 Jul 2013 00:28:56 +0200" ["date_last_login"] => string (31) "Thu, 25 июля 2013 г. 07:08:20 +0200 "[" num_logins "] => string (1)" 4 "} – Fitz

ответ

0

К этому $xml->result->data->users->entries

Вы выбираете это:

[0] => SimpleXMLElement Object 
(
    [user_token] => 11111111-4444-bbbb-1111-111111111111 
    [date_creation] => Wed, 24 Jul 2013 00:33:28 +0200 
    [date_last_login] => Wed, 24 Jul 2013 02:08:44 +0200 
    [num_logins] => 2 
) 

[1] => SimpleXMLElement Object 
(
    [user_token] => 22222222-5555-aaaa-2222-333333333333 
    [date_creation] => Wed, 24 Jul 2013 00:28:56 +0200 
    [date_last_login] => Thu, 25 Jul 2013 07:08:20 +0200 
    [num_logins] => 4 
) 

Теперь у вас есть массив из 2 SimpleXMLElement Objects. Теперь вы можете Foreach

foreach ($xml->result->data->users->entries as $entry) { 
    echo $entry->user_token; 
} 
+0

, так вот что произошло, я получил возврат на первом токене пользователя, но не второй, используя этот код foreach ($ xml-> result-> data-> users-> entries-> user_token в $ user_token1) { эхо $ user_token1-> user_token1; }... мне нужно сделать Еогеасп на если ($ oneall_curly-> получить (SITE_DOMAIN "/ пользователей /" $ user_token1».xml ")) { для запуска каждого токена? – Fitz

+0

Или вы сохраняете жетоны в темном массиве. Но тогда вам нужно зациклиться дважды. Поэтому я бы поставил оператор if в цикле yes. –

0

Попробуйте этот тип. entries - основной массив. так что вы можете хранить одну переменную, то вы выполняете с помощью foreach

<?php 
$user_token = $xml->result->data->users->entries; 
foreach ($user_token as $user_token1){ 
    echo $user_token1->user_token; 
    } 
?> 
+0

Все еще, к сожалению, только возвращает информацию из echo '

'; print_r($xml); echo '
'; – Fitz

+0

Его работы для меня. в чем твоя проблема. объяснить ясно –

+0

Вы пытаетесь это сделать? –