使用SimpleXML获取twitter头像网址(怪异)

时间:2009-08-18 07:41:24

标签: php xml twitter

我使用simplexml从xml状态页面获取twitter个人资料头像URL。

这是使用

的代码
<?
$username = twitter;
$xml = simplexml_load_file("http://twitter.com/users/".$username.".xml");
echo $xml->user->profile_image_url;
?>

我访问时会加载xml页面,但出于某种原因,没有任何内容被回显。没有错误。什么都没有。

当我在浏览器中访问它时,我明白了:

<?xml version="1.0" encoding="UTF-8"?>
<user>
  <id>783214</id>
  <name>Twitter</name>
  <screen_name>twitter</screen_name>
  <location>San Francisco, CA</location>
  <description>Always wondering what everyone's doing.</description>    
  <profile_image_url>http://a1.twimg.com/profile_images/75075164/twitter_bird_profile_normal.png</profile_image_url>
  <url>http://twitter.com</url>.....
  (the rest is long and irrelevant to the question)

数据在那里,为什么不回声呢?

4 个答案:

答案 0 :(得分:6)

加载XML文档后,根元素userSimpleXMLElement中保存的$xml对象表示。因此$xml->user不存在。

这个应该有效:

<?
$username = "twitter";  // <-- You did not use quotes here?! Typo?
$xml = simplexml_load_file("http://twitter.com/users/".$username.".xml");
echo $xml->profile_image_url;  // <-- No $xml->user here!
?>

答案 1 :(得分:2)

这是因为暗示了根元素(在本例中为<user>) - 您不必指定它。

试试这个:

echo $xml->profile_image_url;

答案 2 :(得分:0)

嘿伙计们 - 尝试了twivatar,但我收到错误500错误????

无论如何这里是我最终使用的代码 - 它是如何有用的

<?php
if (isset($_REQUEST['user']))

//if "user" is filled out, get the user's twitter picture 

  {
$username = $_REQUEST['user'];
}else{
$username = 'aplusk';

//else lets use ashton kutcher's picture just for the F of it 

}  // <-- You did not use quotes here?! Typo?
$xml = simplexml_load_file("http://twitter.com/users/".$username.".xml");
$timage = $xml->profile_image_url;  // <-- No $xml->user here!
header('location: ' . $timage);
?>

现在可以非常轻松地从应用程序的任何位置调用此脚本,只需打印...

<img src="http://mywebapp.org/timage.php?user=<php echo $data['twitter_screen_name'];?>" />

答案 3 :(得分:-2)

Twivatar

以前,获取推特头像的最简单方法是使用由雷米夏普制作的Twivatar。然而,该服务已被关闭。

不需要使用第三方。