我正在为wordpress创建一个facebook feed插件,并在使用本地文件时让它工作,但我需要加载到$fb = new SimpleXMLElement($xmlstr);
。
$xmlstr
是XML中的变量,该文件中的内容来自此处https://www.facebook.com/feeds/page.php?format=rss20&id=133869316660964。
SimpleXMLElement是否可以存储来自网页的数据?
我尝试使用file_get_contents,但它没有用。当我使用该功能时,facebook在使用此代码时会出现此错误:http://imgur.com/3qOxl:echo "contents: " . file_get_contents('https://www.facebook.com/feeds/page.php?format=rss20&id=133869316660964');
答案 0 :(得分:1)
我使用PHP的cURL库解决了这个问题。
// Init a cURL resource
$ch = curl_init("https://www.facebook.com/feeds/page.php?format=rss20&id=133869316660964");
curl_setopt( $ch, CURLOPT_POST, false );
curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, true );
// Make facebook think it is being accessed by a browser to avoid
//compatability issues
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U;
Windows NT 5.0; en-US; rv:1.7.12) Gecko/20050915 Firefox/1.0.7");
curl_setopt( $ch, CURLOPT_HEADER, false );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
$data = curl_exec( $ch );
从那里我将简单的xml设置为$ data。
$fb = new SimpleXMLElement($data);
希望这有助于将来的人们!
重要的是:
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U;
Windows NT 5.0; en-US; rv:1.7.12) Gecko/20050915 Firefox/1.0.7");
因为否则facebook会认为您使用的是过时的浏览器。
答案 1 :(得分:0)
file_get_contents将使用呈现的数据返回给您,例如当我们使用它时file_get_contents('google.com/index.html')
这将返回与您在网络浏览器View Source
选项上获得的内容相同的HTML内容。