2017-05-24 12 views
0

です。ニュース記事のRSSフィードを取得するためにsimplexml_load_file()を使用しています。 raw xmlフィードのビルド日付は定期的に更新されますが、simplexml_load_file()を使用しているときにprint_rを使用してフィードのデータを表示すると、ビルド日はrawフィードほど頻繁に更新されません。例えばPHPのキャッシュsimplexml - 一部のRSSフィードは更新されませんが、その他のものは

は今のSimpleXML出力する。このビルド日付:

<lastBuildDate>Wed, 24 May 2017 16:21:44 +0000</lastBuildDate> 

を...そして、我々はデータ(話不足している:

[lastBuildDate] => Tue, 23 May 2017 18:27:26 +0000 

が、XMLへの実際の直接リンクは、この言いますより最近のビルドのフィードから)。

私たちが引っ張っているRSSフィードのほんの一部は、同じように読み込んでいますが、私たちが引っ張っているRSSフィードのほんの一部だけです。私たちのサーバーで始まるフィードはうまく、外部ソースからのフィードはうまくいきますが、別の外部ソースからのフィードが原因です。我々は、単にこれをやっている

:すべてのページに

<?php 
     $xml=simplexml_load_file("http://path/to/xml/file"); 
     print_r($xml); 
    ?> 

が私たちの目標をロードするには、RSSフィードから最新のデータを持つことです。また、ページのヘッダー(キャッシュ制御とプラグマ)にキャッシュ・バスト処理のものを入れていますが、それは役に立ちません。何が足りないの?

PHPバージョン5.6.30とApache/2.2.15(Unix)がインストールされています。

+0

私のためにうまくいくhttps://eval.in/804559 –

+0

Sahil - 多分私はあまり明確ではありませんでした。説明のために - 私は文字列を探していません。私は実際のRSSフィードを実際のビルド日付が常に変化する。私は最新のものを必要とし、SimpleXMLは時間前に作成されたフィードからデータを取得します。 –

+0

これはサーバーレベルでのキャッシュ問題であると確信しています。何か案は? –

答えて

0

simple_xml_loadfileのどこかで発生するキャッシュがありますが、それは私の解説を超えています。 SimplePieの使用PHPフィード解析は、キャッシュの処理がこのツールに組み込まれているため、私たちの問題を解決しました。

関連する問題