Как фильтровать JSON и XML.PHP - PullRequest
       10

Как фильтровать JSON и XML.PHP

0 голосов
/ 04 августа 2011

У меня есть функция, которая заводит друзей и подписчиков в твиттере.Я создаю приложение «Кто не следит за мной» Как мне отфильтровать данные xml / json (я могу использовать оба), то есть, чтобы отразить то, что написано ниже, но не подписчиков.*

function twitter_notf_page($query) {
        $user = $query[1];
    if (!$user) {
        user_ensure_authenticated();
        $user = user_current_username();
    }
    $request = API_URL."statuses/friends/{$user}.xml";
    $tla = lists_paginatedd_process($request);
    $request = API_URL."statuses/followers/{$user}.xml";
    $tl = lists_paginatedd_process($request);
    $content = "<h2>FRIENDS</h2>";
    $content .= theme('notf', $tla);
    $content.="<br><hr>";
    $content .= "<h2>FOLLOWERS</h2>";
    $content .= theme('notf', $tl);
    theme('page', 'Followers', $content);
}

function lists_paginatedd_process($url) {
    // Adds cursor/pagination parameters to a query
    $cursor = $_GET['cursor'];
    if (!is_numeric($cursor)) {
        $cursor = -1;
    }
    $url .= '?cursor='.$cursor;
    $xml = twitter_process($url);
    $ret = simplexml_load_string($xml)

    return $ret;
}

Результаты - Подписан

<?xml version="1.0" encoding="UTF-8"?>
<users_list>
<users type="array">
<user>
  <id>66968592</id>
  <name>DJ Swaggz &#11013;click2fol</name>
  <screen_name>DjSwaggz</screen_name>
</user>
<user>
  <id>288859268</id>
  <name>tegan shanks</name>
  <screen_name>teganxroshanks</screen_name>
  </user></users_list>

Результат - Подписан*

1 Ответ

2 голосов
/ 04 августа 2011

Вот, пожалуйста:)

<?PHP
function get_nonfollowers($followingXml, $followersXml)
{
    $following = simplexml_load_string($followingXml);
    $followers = simplexml_load_string($followersXml);

    $notFollowingMe = array();

    foreach($following->users->user as $f)
    {
        $isFollowingMe = false;
        foreach($followers->users->user as $follower)
        {
            if(strcmp($follower->id, $f->id) == 0)
            {
                $isFollowingMe = true;
                break;
            }
        }
        if(!$isFollowingMe)
            $notFollowingMe[] = $f;
    }
    return $notFollowingMe;
}

$followingXml = <<<EOF
<?xml version="1.0" encoding="UTF-8"?>
<users_list>
    <users type="array">
        <user>
            <id>66968592</id>
            <name>DJ Swaggz &#11013;click2fol</name>
            <screen_name>DjSwaggz</screen_name>
        </user>
        <user>
            <id>288859268</id>
            <name>tegan shanks</name>
            <screen_name>teganxroshanks</screen_name>
        </user>
    </users>
</users_list>
EOF;

$followersXml = <<<EOF
<?xml version="1.0" encoding="UTF-8"?>
<users_list>
    <users type="array">
        <user>
            <id>66968592</id>
            <name>DJ Swaggz &#11013;click2fol</name>
            <screen_name>DjSwaggz</screen_name>
        </user>
    </users>
</users_list>
EOF;

$notFollowingMe = get_nonfollowers($followingXml, $followersXml);
print_r($notFollowingMe);
?>

Вывод

Array
(
    [0] => SimpleXMLElement Object
    (
        [id] => 288859268
        [name] => tegan shanks
        [screen_name] => teganxroshanks
    )
)

Прокрутка экранных имен

foreach($notFollowingMe as $user)
{
    echo $user->screen_name . "\r\n";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...