これはXMLフィード自体の問題だと思います。
この記事を参照してください。
file_get_contentsを使用して文字列をロードし、アンペランドでstr_replaceを実行して
&
だからあなたを残します
$xml = simplexml_load_string(str_replace('&','&',file_get_contents('https://developers.facebook.com/blog/feed/')));
編集:
コメントで見たように、これは以前に取り組まれており、str_replaceを元の状態から
$xml = simplexml_load_string(str_replace(array("&", "&"), array("&", "&"),file_get_contents('https://developers.facebook.com/blog/feed/')));
これにより、すでに正しくエンコードされているアンパサンドの変換が回避されます。
編集2:
Facebookは、file_get_contentsからのリクエストをブラウザの選択ページにリダイレクトします。したがって、通常のブラウザを使用していると思わせるように「だまして」ください。
$url='https://developers.facebook.com/blog/feed/';
$crl = curl_init();
$timeout = 5;
curl_setopt ($crl, CURLOPT_URL,$url);
curl_setopt ($crl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($crl, CURLOPT_CONNECTTIMEOUT, $timeout);
curl_setopt($crl,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');
$ret = curl_exec($crl);
curl_close($crl);
$xml = simplexml_load_string(str_replace(array("&", "&"),array("&", "&"),$ret));
var_dump($xml);
ほとんどの場合、最初の答えは機能するはずですが、編集2は、Facebook Devブログ、またはuser-agentヘッダーに基づいてリダイレクトするその他のブログ用です。