Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP Twitter API可以';t抓取georss:点并作为变量存储?_Php_Api_Twitter_Geolocation - Fatal编程技术网

PHP Twitter API可以';t抓取georss:点并作为变量存储?

PHP Twitter API可以';t抓取georss:点并作为变量存储?,php,api,twitter,geolocation,Php,Api,Twitter,Geolocation,我不熟悉API,就像今天一样。我已经学会了如何简单地调用twitterapixml数据,并从帖子中获取某些信息。但我的问题是,我似乎不知道如何在twitterapi中提取地理位置或坐标,并将其显示或存储为变量 <html> <?php $xmldata = 'http://twitter.com/statuses/user_timeline/allencoded.xml'; $open = fopen($xmldata, 'r'); $content = stream_get_

我不熟悉API,就像今天一样。我已经学会了如何简单地调用twitterapixml数据,并从帖子中获取某些信息。但我的问题是,我似乎不知道如何在twitterapi中提取地理位置或坐标,并将其显示或存储为变量

<html>
<?php
$xmldata = 'http://twitter.com/statuses/user_timeline/allencoded.xml';
$open = fopen($xmldata, 'r');
$content = stream_get_contents($open);
fclose($open);
$xml = new SimpleXMLElement($content);
?>
<?php 
$geo = $xml->status[0]->coordinates->georss:point; //<---PROBLEM POINT!!!!
?>
<body>
<table>
<tr>
<td><img src="<? echo $xml->status[0]->user->profile_image_url; ?>" /></td>
<td>
<? echo $xml->status[0]->text; ?> at <? echo $xml->status[0]->created_at; ?> by <? echo $xml->status[0]->user->name; ?> 
</td>
<td>
GEO IS AT:<? echo $geo; ?>
</td>
</tr>
</table>
</body>

</html>

状态[0]->坐标->地理:点//
状态[0]->用户->配置文件\u图像\u url;?>" />
状态[0]->文本;?>在状态[0]->在状态[0]->按状态[0]->用户->名称创建;?>
GEO位于:
当我运行代码时,我得到: 解析错误:语法错误,在第11行的C:\inetpub\vhosts\allencoded.com\httpdocs\twitter.php中出现意外的“:”


当我删除第11行的代码时,一切都正常。

我认为PHP没有逐字解析XML。虽然
georss:point
是XML树中的有效节点,但该语法对PHP来说意味着其他内容。请尝试在
$XML->status[0]上执行
print\r()
->坐标
值并查看其显示的属性是什么。

在处理带名称空间的元素(如
namespace\u name:element\u name
)时,需要告诉SimpleXML加载该名称空间的元素(默认情况下是加载没有名称空间的元素)。为此,使用
SimpleXMLElement::children()
()


键行的第一块
$xml->status->geo
获取第一个status元素的第一个
geo
元素。然后我们请求属于
georss
名称空间的子元素(因此,任何
georss:…
元素),然后指定我们需要(第一个,仅限)
point

Georgs是一个名称空间。应该会有帮助。嘿,我只是想提醒你,你很快就会被禁止在这里提问。不要删除有答案的问题,然后开始回答自己,以躲避即将到来的禁令。是的。看起来你必须再次调用Place属性中提供的URL,这会让你得到一个JSON对象来解码。有趣的时候…
print_r()
(和
var_dump()
)在SimpleXMLElement对象上只报告非命名空间的项。但是它们可以访问!你需要使用
$xml->status[0]>children(“georss”,TRUE)
像其他人指出的那样访问它们,但这正是对我有效的代码:-)
$xml = simplexml_load_file('http://twitter.com/statuses/user_timeline/allencoded.xml');
$geo = (string) $xml->status->geo->children('georss', true)->point;
echo $geo;