2011-01-04 14 views
1

PHPからWordPress RSSフィードを解析しようとしています。私のローカルサーバー上では、次の動作はうまくいきますが、実際には自分のサイトが稼働しているホストでは動作しません。私は手動でRSSを保存するたびに、しかし、興味深いことにPHPでWordPress RSSを解析する:I/O警告:外部エンティティの読み込みに失敗しました

を:


$url = "../blog/feed/"; $rss = simplexml_load_file($url);

foreach ($rss->channel->item as $item) { //Do stuff
}

はしかし、私のサイトがホストされているサーバー上で、私はエラー「外部実体をロードするために失敗したI/Oの警告」を取得しますファイルをxmlファイルとして指定し、そのファイルをポイントすると、すべて正常に動作します。ですから、私が手動でXMLファイルを保存してアップロードすると、それを自動化することができます。

本当にありがとうございます。私はおそらくそれの後でそれについてホストに話すでしょう。

答えて

2

私は../blog/feed/がURL(おそらくmod_rewriteによって書き換えられる)を指していると仮定します。

スクリプト内で相対パスを使用すると、ブラウザで呼び出されたURLに相対的ではなく、スクリプトが実行される場所に対する相対的な物理(ファイルシステム)パスとして扱われます。

http://で始まる完全なURLを指定すると役立ちます。

+0

私はhttp://を使用しますが、それを変更する権限を持っていないサーバー構成があります。 「サーバー設定でURLファイルアクセスが無効になっています」だから私はそれが何らかの形で相対的である必要があると推測している。奇妙なことは、私が手動で同じディレクトリにxmlファイルを置いてそれを使用すればうまくいきます。だから../blog/rss.xmlが動作します。しかし、手動で更新する必要はありません。 –

+0

@Josephあなたは正しいファイルパスを見つける必要があります。前述のように、 '/ blog/feed'は仮想URLであり、ファイルシステムレベルには存在しません。それは別の質問の価値があるかもしれないことを見つけることがあります –

+0

@ジョセフはまた、この答えが別のルートに行くのに役立つかどうかをチェックします。http://stackoverflow.com/questions/2055725/pull-data-from-wordpress/2056058#2056058 –

関連する問題