• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHPで一部サイトからRSS情報を取得できない)

PHPで一部サイトからRSS情報を取得できない

このQ&Aのポイント
  • PHPを使用して、他のサイトからRSS情報を取得し、DBにデータを格納するバッチを作成しました。
  • SimplePieという無料のライブラリを使用して、RSS情報を最大5件取得するファンクションを作成しました。
  • しかし、一部のWordPressサイトでは、このファンクションを通してもRSS情報を取得できず、空の配列が返されます。調査しても原因がわからず困っています。

質問者が選んだベストアンサー

  • ベストアンサー
  • agunuz
  • ベストアンサー率65% (288/438)
回答No.1

>一部のWordPressサイトでは、上記のファンクションを通しても >1つもRSS情報を取得することが出来ず、 WordpressのバージョンによってRSSが変更されているハズですので、まずはその「一部のWordPressサイト」のRSSがどういう内容になっているか確認してください。

yukie1101
質問者

お礼

ご回答いただき、誠にありがとうございます! もちろん、確認はしたのですが、 ぱっと見では情報が取得できているサイトと何が違うのか、見分けられないので困っております。 RSSを取り扱うのが素人なので、見分けがついていないだけなのかもしれませんが、 XMLのバージョン、RSSのバージョンともに一致しており、 それぞれの内容も変わらないように見えました。 「generator」に設定されているWordPressのバージョンはもちろん違っておりましたが、 内容は正しく設定されていましたし、 特別な設定はされていないように見えました。 さすがにXML全文を載せるわけにはいかないので控えさせていただきますが、 確認するべき項目などありましたら、教えていただけないでしょうか? どうぞよろしくお願いいたします。

yukie1101
質問者

補足

自己解決(?)いたしましたので、共有させていただきます。 SimplePieを使用することをやめ、単純に file_get_content() ⇒ simplexml_load_string() という手順を踏んだのですが、simplexml_load_string()で エラーが発生してしまっていたようでした。 文字コードの関係なのだと思いますので、 別スレッドにて再度質問させていただこうと思います。 ありがとうございました!

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • rssを取得したいのですが

    wordpressで書いたブログの最新記事をRSSで取得したいのですが、なかなかできません・・・ 取得してタイトルと日付けを取り出したいのですが、どなたかアドバイスいただけないでしょうか? 記事のページのURLの後に/feedとつけるのは分かったのですが・・・ どうかお願いします^^

    • ベストアンサー
    • PHP
  • WordpressのRSS取得条件

    以下のコードに2010年以降のフィードのみ表示させるようにするにはどうすればよいですか? <?php include_once(ABSPATH . WPINC . '/feed.php'); $rss = fetch_feed(array('RSSフィード')); if (!is_wp_error( $rss ) ) : $rss->set_cache_duration(1800); $rss->init(); $maxitems = $rss->get_item_quantity(10); $rss_items = $rss->get_items(0, $maxitems); date_default_timezone_set('Asia/Tokyo'); endif; ?> <dl> <?php if ($maxitems == 0) echo '<dt>No items.</dt>'; else foreach ( $rss_items as $item ) : ?> <dt> <?php echo $item->get_feed()->get_title(); ?><br /> <a href='<?php echo $item->get_permalink(); ?>' target="_blank"><?php echo $item->get_title(); ?></a> </dt><?php endforeach; ?></dl>

    • 締切済み
    • PHP
  • RSSの取得について

    http://ascii.jp/elem/000/000/407/407910/index-2.html 現状は上記URLの方法で全ての記事を取得しています。 Googleブログを使っておりRSSのURLは以下の形式です。 http://○○○.blogspot.com/feeds/posts/default これを全ての記事からn件ではなく、任意のカテゴリーからn件取得したい 場合にはどうすればできるのでしょうか? for (var i = 0; i < result.feed.entries.length; i++) { if (result.feed.entries[i].categories[0] == 'カテゴリー名') { //記事の取得 } } としてみましたが、forでiが加算されてしまうので当然ながらうまくいきませんでした。

  • RSSを取得して、サイト表示する方法

    http://www.moondakota.com/feed/index_u.php こんなことをしたいと思っています。 サイト上に、RSSで取得した情報を、表示させる PHPはどこかで提供していないでしょうか? 知っていましたら、教えてください!

  • [wordpress]外部RSSを「文字数制限」してリストで取得[php]

    初めまして。 wordpress、php初心者です。 タイトル通り、外部のRSSを自分のサイトで、 リスト表示させようと思っています。 ------------ <h1><?php _e('Headlines from Yahoo ITmedia News'); ?></h1> <?php // Get RSS Feed(s) include_once(ABSPATH . WPINC . '/rss.php'); $rss = fetch_rss('http://headlines.yahoo.co.jp/rss/itmedia_n.xml'); $maxitems = 5; $items = array_slice($rss->items, 0, $maxitems); ?> <ul> <?php if (empty($items)) echo '<li>No items</li>'; else foreach ( $items as $item ) : ?> <li><a href='<?php echo $item['link']; ?>' title='<?php echo $item['title']; ?>'> <?php echo $item['title']; ?> </a></li> <?php endforeach; ?> </ul> ------------ 上記のソースで表示はひとまずできました。 あと、これを文字数制限(たとえば10文字以上は「…」)で表示 としたいのですが、どうしたらいいのでしょうか? ------------ <?php $title= mb_substr($post->post_title,0,10); echo '<h1>'.$title.'…</h1>'; ?> ------------ 上記の「mb_substr(」を組み合わせればできそうなのですが、 理解不足な分、うまくいきません。 誰が、教えてください。よろしくお願いします。

    • ベストアンサー
    • PHP
  • GoogleFeedApiで任意タイトルの付け方

    サイト名の正規の取得方法は、 var feed = new google.feeds.Feed(”URL”); var title = rss.feed.title; document.writeIn(title); 多分?こんな感じなのでしょうけど、自分は、各サイトごとに指定したサイト名を表示させたいので、 http://wp.7zz.jp/news/ajax/2447.html ↑のサイトをほぼ全部参考にして、 var site = new Array(); site[0] ={ title:'GIZUMODO', url:'http://feeds.gizmodo.jp/rss/gizmodo/index.xml', disp_entry:2 }; ↑のようにサイの情報を配列に手入力して、 ~前略~ function init() { var site_count = 0; for (var i=0; i<site.length; i++){ // 読み込むRSSを設定 var feed = new google.feeds.Feed(site[i]['url']); feed.setNumEntries(site[i]['disp_entry']) //●↓追加 var title = site[i]['title'];    //●↑           feed.load(function(rss) { if (!rss.error) { // RSSからサイトの情報を配列に格納 //●↓変更        channel['title'] = title; //●↑ channel['link'] = rss.feed.link; channel['favicon'] = "http://favicon.hatena.ne.jp/?url=" + channel['link']; channel['description'] = rss.feed.description; channel['author'] = rss.feed.author; ~後略~ }} みたいな小学生レベルの改変をしたのですが、全てのタイトル名が同じになってしまいます。 javascriptの入門書を読んだ程度の私に、どこがおかしいのか指摘お願いいたします。よろしくお願いいたします。

  • WordpressRSSが状況によって取得できない

    WordpressのRSSが、状況によって取得できません。 まず、状況を説明します。(リンクにならないようにhttpのhは省きました) ttp://sample.com/のコンテンツとしてwordpressでブログを作成してます。 ttp://sample.com/blog/にwordpress全プログラムを格納してます。URLもこの形です。 ttp://sample.com/そのものもいろいろなプログラムと関連してるので、wordpressはttp://sample.com/blog/に格納し、このURLで表示するしかない状況です。 また、ヘッダーはttp://sample.com/と同じものをttp://sample.com/blog/でも読み込んでいるので、 <?php get_header(); ?>ではない方法でrequire_once $_SERVER['DOCUMENT_ROOT']."/header.php";というような感じです。これもこうするしかありません。 そして、wordpressの更新状況をttp://sample.com/に表示したいというのが目的です。 ttp://sample.com/はwordpressと関わりないことになりますので、ウィジェットなどは使えないので、RSSを表示しようと考えました。 表示の方法は、このページのやり方で行おうとしました。 http://blog.promob.jp/fri/2009/05/phprss.html 表示されません。 設定が間違っているのかな?と思って、他のRSSのURLを設定したら表示されたので、設定の間違いではないと思います。 では、<?php get_header(); ?>がない影響などで、ttp://sample.com/blog/?feed=rss2というURLの指定がおかしいのかと考えましたが、wordpressのRSSウィジェットに入力した場合は表示されます。 こういうサービスを使ってみましたが(http://www.moondakota.com/feed/index_u.php)これでもちゃんと表示されます。 なので、RSSのURLもおかしくないのだと思いましたが、見栄えをカスタマイズしたいので、先述した方法でやりたいと思ってます。 また、ttp://sample.com/blog/?feed=rss2に直接アクセスしたら記事が表示されないので、どうもRSSのURLに問題がありそうな気はするのですが、解決方法が見えません。 どなたか解決方法わかりませんでしょうか?

    • 締切済み
    • PHP
  • 指定したRSSを全文取得したい

    RSSからのデータ取得について、教えてください。 現在、指定したサイトの本文をRSSから全文取得する、という処理を PHPで行いたいと思っています。 RSSの情報を取得して、データを取得するところまでは SimplePieを使って上手く出来たのですが、 そもそもRSSに設定されている「description」の値が全文になっていないことで、 処理の仕方に困っています。 RSSを取得したいのは、主にwordpressとアメブロなのですが、 自分で管理しているものもあれば、自分で設定ができないものもあります。 (もちろん、サイト運営者に許可は得た上で取得を行っています) wordpress側でRSSの設定を「全文取得」にしても 全文がRSSに設定されていないものもあったりして(バージョンやテンプレの違い?)、 色々と苦戦しているところなのですが、 何か解決策はあるのでしょうか? wordpress側で何かプラグインを使えば設定が出来るのか、 PHP側でライブラリが存在するのか、 RSSの全文化ツールのようなものがあるのか・・・ 何かお知恵を貸していただけるとありがたいです。 よろしくお願いします!

    • 締切済み
    • PHP
  • RSS URL 取得 判定

    PHPを使って、webサイトのURLからRSSのURLを取得したいと考えています。 curlなどを使って、RSS自体を取得するという意味ではなく、指定されたサイトのRSSの”URL”を取得したいです。 単純に正規表現などでlink要素をチェックして取得することもできますが、その方法だとlink要素などにRSSの情報を記載していないサイトなどからは取得することが出来ません。 100%とまではいかなくても、出来る限り確実な方法でRSSのURLを取得することはできないでしょうか?

    • ベストアンサー
    • PHP
  • 他サイトのRSSフィードを指定した「キーワードが含まれるフィードのみ」

    他サイトのRSSフィードを指定した「キーワードが含まれるフィードのみ」wordpress(ワードプレス)に表示させたいと考えております。 ネットで調べてみたところ、http://www.moondakota.com/feed/index_s.php(RSS FeedをJavascriptでウェブページに表示 (ベータ版))という素晴らしいサイトを見つけたのですが、残念ながら「指定したキーワードが含まれるフィードのみ」には対応していないようでした。 wordpressの記事やページにて表示させたいと考えておりますので、javascriptでなくてもOKなのですが、有料・無料は問いませんので、そのようなプログラムやプラグインを、教えて下さい。

このQ&Aのポイント
  • 印刷しても色がかすれて、ぼやけた感じになる問題について相談します。
  • お使いの環境や接続方法、関連するソフト・アプリ、電話回線の種類などについて教えてください。
  • この問題の解決策や改善方法についてアドバイスをいただきたいです。
回答を見る

専門家に質問してみよう