Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/236.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/0/xml/14.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/4/jquery-ui/2.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 I';我在使用simplexml解析facebook提要时遇到问题_Php_Xml_Facebook_Rss_Simplexml - Fatal编程技术网

Php I';我在使用simplexml解析facebook提要时遇到问题

Php I';我在使用simplexml解析facebook提要时遇到问题,php,xml,facebook,rss,simplexml,Php,Xml,Facebook,Rss,Simplexml,上面的链接是我在Facebook上共享帖子的URL。当我将该URL加载到simplexml_load_file()时,它会提供一整页错误。看看这些错误,看起来Facebook是在抛出HTML而不是提要。我认为这是一个身份验证问题,但我注销了facebook,并将提要url加载到我的浏览器中,我能够看到提要。下面是我得到的错误。有什么想法吗?谢谢 A PHP Error was encountered Severity: Warning Message: simplexml_load_file

上面的链接是我在Facebook上共享帖子的URL。当我将该URL加载到simplexml_load_file()时,它会提供一整页错误。看看这些错误,看起来Facebook是在抛出HTML而不是提要。我认为这是一个身份验证问题,但我注销了facebook,并将提要url加载到我的浏览器中,我能够看到提要。下面是我得到的错误。有什么想法吗?谢谢

A PHP Error was encountered

Severity: Warning

Message: simplexml_load_file() [function.simplexml-load-file]: http://www.facebook.com/feeds/share_posts.php?id=207302593&viewer=207302593&key=d95b2de790&format=rss20:12: parser error : AttValue: " or ' expected

Filename: models/Stream.php

Line Number: 55

A PHP Error was encountered

Severity: Warning

Message: simplexml_load_file() [function.simplexml-load-file]: </script><noscript> <meta http-equiv=refresh content="0; URL=?_fb_noscript=1" />

...
遇到PHP错误 严重性:警告 消息:simplexml加载文件()[函数.simplexml加载文件]:http://www.facebook.com/feeds/share_posts.php?id=207302593&viewer=207302593&key=d95b2de790&format=rss20:12: 分析器错误:应为AttValue:“或” 文件名:models/Stream.php 电话号码:55 遇到一个PHP错误 严重性:警告 消息:simplexml加载文件()[函数.simplexml加载文件]: ... 重新定义“提要”Facebook的方法。试试看,看看下载的页面

echo file_get_contents('http://www.facebook.com/feeds/share_posts.php?id=207302593&viewer=207302593&key=d95b2de790&format=rss20');
看起来Facebook正在进行用户代理嗅探,并拒绝任何它认为无法处理其页面的“浏览器”(在本例中,PHP就是浏览器)。他们在feed上这样做有点奇怪,但扎克伯格的工作方式很神秘。(这样做是为了防止屏幕刮擦是一回事,但提要隐含的意思是机器可以读取)

您需要将您的用户代理字符串设置为与Facebook支持的浏览器相匹配。当我需要这样做时,我会使用用户curl下载文件(curl有很多设置http头的选项)

如果您不喜欢curl,那么可以使用ini设置覆盖PHP的默认用户代理

    ini_set('user_agent', 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3');

很有魅力!真不敢相信这是个不寻常的问题