我使用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)
数据在那里,为什么不回声呢?
答案 0 :(得分:6)
加载XML文档后,根元素user
由SimpleXMLElement
中保存的$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)
无论如何这里是我最终使用的代码 - 它是如何有用的
<?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。然而,该服务已被关闭。
不需要使用第三方。