1

phpでfile_get_contentsを使用してRSSフィードを表示しようとしています。ただし、ページを読み込もうとすると失敗します(何かが完了するのを待っているかのように)。コードを削除してファイルを再度保存すると、ページは5分ほど機能しなくなり、その後は通常の状態に戻ります。誰かが何が起こっているのかを明らかにするのを手伝ってもらえますか?別のサイトで同じコードを使用していますが、完全に機能します。アドバイスをいただければ幸いです。ありがとう。

   //Displays an xml feed on the page
function display_xml_feed($feed_url, $num_records, $before, $after) {  
      // Get data from feed file
  if(!$response = file_get_contents($feed_url)) {
  return '';
  }

  $xml = simplexml_load_string($response); 
  $count = 0;
  // Browse structure
  foreach($xml->channel->item as $one_item)
  {
    if($count < $num_records)      {
    $html .= $before.'<a href="'.htmlentities($one_item->link).'">'.
    $one_item->title.'</a>'.$after;
    $count++;
    } else {
        break;
    }
  }

   return $html;

}
4

3 に答える 3

2

ここでの他の回答は、最初の考え(フィードサーバーへの接続が非常に遅いphp.iniをチェックする)に私を打ち負かしましたが、何か他のことに気づきました. 私は PHP の知識がある程度ある Javascript コーダーです (ほとんどの場合、構文が非常に似ているためです)。次の行は、有効な構文ではないため、Javascript で問題を引き起こします。

if(!$response = file_get_contents($feed_url)) { 

PHPでは問題ないかもしれませんが(コメントを追加して回答を削除する場合)、JSでは次のステートメントを中括弧で囲む必要があります!

if (!($response = file_get_contents($feed_url))) {

私が言ったように、言及する価値さえなかったかもしれませんが、あなたは決して知りません.

于 2009-10-22T11:34:23.757 に答える
0

ローカルファイルを取得しようとしましたか?http://localhost/myfeed.xmlを介してローカルフィードを取得しようとするとどうなりますか?

file_get_contentsにはかなりの時間がかかるかもしれません。そのため、これを試してみることをお勧めします。

于 2009-10-22T11:26:58.157 に答える
0

allow_url_fopen(php.ini)はtrueに設定されていますか?また、リクエストのタイムアウトを設定することもできます。

ローカルファイルを開いている場合、そのファイルの大きさはどれくらいですか?

于 2009-10-22T11:27:18.810 に答える