如何过滤JSON和XML。PHP
我有一个功能,可以获取推特帐户的朋友和追随者。我正在制作一个“谁不关注后面的应用程序”,我如何过滤xml/json数据(我可以同时使用这两种数据)ie来响应下面的内容,而不是追随者中的内容 这是我的密码如何过滤JSON和XML。PHP,xml,json,twitter,Xml,Json,Twitter,我有一个功能,可以获取推特帐户的朋友和追随者。我正在制作一个“谁不关注后面的应用程序”,我如何过滤xml/json数据(我可以同时使用这两种数据)ie来响应下面的内容,而不是追随者中的内容 这是我的密码 function twitter_notf_page($query) { $user = $query[1]; if (!$user) { user_ensure_authenticated(); $user = user_current_
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;
}
function twitter\u notf\u页面($query){
$user=$query[1];
如果(!$user){
用户_确保_已验证();
$user=user\u current\u username();
}
$request=API_URL.“statuses/friends/{$user}.xml”;
$tla=列出分页过程($request);
$request=API_URL.“status/followers/{$user}.xml”;
$tl=列出分页过程($request);
$content=“FRIENDS”;
$content.=主题('notf',$tla);
$content.=“
”;
$content.=“追随者”;
$content.=主题('notf',$tl);
主题(“页面”、“关注者”、“内容”);
}
函数列表\u分页\u进程($url){
//将游标/分页参数添加到查询中
$cursor=$_GET['cursor'];
如果(!是数值($cursor)){
$cursor=-1;
}
$url.='?游标='。$cursor;
$xml=twitter\u进程($url);
$ret=simplexml\u加载\u字符串($xml)
返回$ret;
}
结果-跟进
<?xml version="1.0" encoding="UTF-8"?>
<users_list>
<users type="array">
<user>
<id>66968592</id>
<name>DJ Swaggz ⬅click2fol</name>
<screen_name>DjSwaggz</screen_name>
</user>
<user>
<id>288859268</id>
<name>tegan shanks</name>
<screen_name>teganxroshanks</screen_name>
</user></users_list>
66968592
DJ Swaggz⬅;单击2文件夹
DjSwaggz
288859268
特甘小腿
特甘克斯罗斯汉克斯酒店
结果-追随者
<?xml version="1.0" encoding="UTF-8"?>
<users_list>
<users type="array">
<user>
<id>66968592</id>
<name>DJ Swaggz ⬅click2fol</name>
<screen_name>DjSwaggz</screen_name>
</user>
</user></users_list>
66968592
DJ Swaggz⬅;单击2文件夹
DjSwaggz
我想让这个家伙展示(那个不跟在后面的人)
288859268
特甘小腿
特甘克斯罗斯汉克斯酒店
给你:)
循环浏览屏幕名称
foreach($notFollowingMe as $user)
{
echo $user->screen_name . "\r\n";
}
你能把返回的xml作为一个例子吗?好的,试一下。给我点时间。非常感谢你。我很感激。ThanksNo Problem:),顺便说一句,您发布的示例XML中有错误,标记没有结束标记,我假设您手工编写了示例,而不是twitter的实际输出?(如果输出来自twitter,那就需要注意了)。是的,我是手工写的,字段太多了。我不得不把它剪短。谢谢它很神奇。嘿,但是我如何循环通过[屏幕名称]。我做不到。它一直在给我一些东西,比如10个循环,通过哪些屏幕名称?$NOTME数组中的那些?编辑我的答案,在底部检查。
<?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 ⬅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 ⬅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";
}