さくらレンタルサーバーでのMagpieRSS設置方法

このQ&Aのポイント
  • さくらインターネットサーバーを使用しています。RSSをサイトに表示しようとしています。PHPを試しています。
  • MagpieRSSを利用したいと考えています。参考にしたサイトを参考に、必要なファイルをアップロードし、rss.php内のコードを記述しました。
  • しかし、設置後にサイトを表示してみると何も表示されず、設定方法が間違っているのか不明です。
回答を見る
  • ベストアンサー

さくらレンタルサーバーでのMagpieRSS設置方法

さくらインターネットサーバーを使用しています。 RSSをサイトに表示しようとしています。javaタイプではなく、ロボット検索エンジンに認識されるものとしてPHPを試しています。 そこで、MagpieRSSを利用したいと考えているのですが、 http://www.kosaki.name/cms/movable-type/rss-html/ http://ameblo.jp/yamasita-94nsr/entry-10018566158.html を参考に、 indexと同じ階層に magpie / rss.php(属性755)      │  jcode.php      │  code_table.ucs2jis      │  rss_cache.inc      │  rss_fetch.inc      │  rss_parse.inc      │  rss_utils.inc      │      ├ extlib / Snoopy.class.inc      │      └ cache (属性755) をアップロードし、rss.php内を <?php require_once 'rss_fetch.inc'; require_once 'code_table.ucs2jis'; require_once 'jcode.php'; $url = 'httpから始まるRSSのURL'; $rss = fetch_rss($url); $title = $rss->channel['title']; //JcodeConvert($str, $from, $to) //0:PASS(無変換)1:EUC-JP 2:Shift_JIS 3:ISO-2022-JP(JIS) 4:UTF-8 $title = JcodeConvert($title, 4, 2); foreach ($rss->items as $item ) { $title = $item[title]; $title = JcodeConvert($title, 4, 2); $url = $item[link]; echo "<li><a href=\"$url\">$title</a></li>\n"; } ?> と記述。 http://www.サイトURL/magpie/rss.phpを表示して動作確認をしようとしたのですが、真っ白で何も表示されません。 設定方法がおかしいのでしょうか。

  • PHP
  • 回答数1
  • ありがとう数4

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

  • ベストアンサー
noname#111181
noname#111181
回答No.1

こちらの環境で実行したところ正常に動作しました。 code_table.ucs2jis, jcode.php はMagpieRSSのライブラリではありませんよね。どこから導入されたのでしょうか? ご確認ください。 まずは、障害の切り分けのため $title = JcodeConvert($title, 4, 2); の行をコメントアウトして実行してみてください。

domudesu
質問者

お礼

extlib / Snoopy.class.incとcacheフォルダをmagpieと同じ階層に設置していたのですが、2つのフォルダをmagpieの中に移動したら、PHPが表示できました。 しかし、通常のページに埋め込み表示できません。

domudesu
質問者

補足

●code_table.ucs2jisとjcode.phpは下記URLmpjcode_1.35a.zipをダウンロードし解凍した中にあります。 http://www.kosaki.name/cms/movable-type/rss-html/ ●$title = JcodeConvert($title, 4, 2);の行をコメントアウトしてみましたが、どこまでかがわからないので、これでいいのでしょうか?2箇所ありましたが。 <?php require_once 'rss_fetch.inc'; require_once 'code_table.ucs2jis'; require_once 'jcode.php'; $url = 'httpから始まるRSSのURL'; $rss = fetch_rss($url); $title = $rss->channel['title']; //JcodeConvert($str, $from, $to) //0:PASS(無変換)1:EUC-JP 2:Shift_JIS 3:ISO-2022-JP(JIS) 4:UTF-8 <!-- $title = JcodeConvert($title, 4, 2);--> foreach ($rss->items as $item ) { $title = $item[title]; $title = JcodeConvert($title, 4, 2); $url = $item[link]; echo "<li><a href=\"$url\">$title</a></li>\n"; } ?> ●変化ありません。なにか、さくらーサーバー側で設定が必要なのでしょうか。 code_table.ucs2jisとjcode.phpは、 http://www.hyuki.com/yukiwiki/wiki.cgi?MagpieRSS の解説2にもかいてあります。 PHPの事等初心者なので、上記のように行ってみましたがいかがでしょうか。

関連するQ&A

  • MagpieRSSでRSSを取得し、ランダムに表示

    <?php require_once 'rss_fetch.inc'; require_once 'code_table.ucs2jis'; require_once 'jcode.php'; $url = 'xmlアドレス'; $rss = fetch_rss($url); $title = $rss->channel['title']; //JcodeConvert($str, $from, $to) //0:PASS(無変換)1:EUC-JP 2:Shift_JIS 3:ISO-2022-JP(JIS) 4:UTF-8 $title = JcodeConvert($title, 4, 4); foreach ($rss->items as $item ) { $title = $item[title]; $title = JcodeConvert($title, 4, 4); $url = $item[link]; $description = $item[description]; $description = mb_convert_encoding($description, "Shift_JIS", "auto"); $description = mb_strimwidth($description, 0, 120, "" , "Shift_JIS"); echo "<li><a href=\"$url\">$title</a><br>$description</li>\n"; } ?> と記述し、 <ul> <!--#include virtual="上記phpファイルのアドレス" --> </ul> でサイトにRSSを表示しているのですが、 通常上が新しいものが表示されているのですが、 これをランダムに表示したいと考えています、 shuffleを使えばできるような感じですが、記述方法が全く分かりません。 何を記述すれば、ランダム表示されますか。

    • ベストアンサー
    • PHP
  • PHPスクリプトにスタイルシートを適用するには?

    MagpieRSS(http://magpierss.sourceforge.net/)で取得した以下のPHPスクリプトでRSSをリスト化してWEB表示させることができたのですが、これにスタイルシートを適用したい場合、どのような方法がありますか?PHP初心者なためぜんぜんわかりません。 <?php require_once 'rss_fetch.inc'; require_once 'code_table.ucs2jis'; require_once 'jcode.php'; $url = 'http://~; $rss = fetch_rss($url); $title = $rss->channel['title']; //JcodeConvert($str, $from, $to) //0:PASS(無変換)1:EUC-JP 2:Shift_JIS 3:ISO-2022-JP(JIS) 4:UTF-8 $title = JcodeConvert($title, 4, 2); foreach ($rss->items as $item ) { $title = $item[title]; $title = JcodeConvert($title, 4, 2); $url = $item[link]; echo "<li><a href=\"$url\">$title</a></li>\n"; } ?>

    • ベストアンサー
    • PHP
  • magpierssを利用して携帯サイトにRSS情報を表示

    magpierssを利用して携帯サイトにRSS情報を表示 magpierssを利用して携帯サイトにツイッターのつぶやきを表示させたいと思っています。 現時点でサイトにつぶやきを表示するところまでいきましたが、 つぶやき内容に書かれてあるURLを自動リンクにしたいのですが可能でしょうか? 現在は、リンクをクリックすると、PCのツイッターのページへリンクされております。 このリンクではなく、つぶやきにURLが書かれていた場合、そのURLを自動リンクにしたいと思っております。 PHPに関しては知識がないもので、 下記PHP表記も他サイト様に掲載されていた情報を元に作成しました。 rssはssiを利用して読み込んでおります。 -------------------- rss.phpの表記 <?php require_once 'rss_fetch.inc'; require_once 'code_table.ucs2jis'; require_once 'jcode.php'; $url = 'http://twitter.com/statuses/user_timeline/ツイッターID.rss'; $rss = fetch_rss($url); $title = $rss->channel['title']; // 表示する件数の上限 $rss = fetch_rss($url); $rss->items = array_slice($rss->items, 0, 5); //JcodeConvert($str, $from, $to) //0:PASS(無変換)1:EUC-JP 2:Shift_JIS 3:ISO-2022-JP(JIS) 4:UTF-8 $title = JcodeConvert($title, 4, 2); foreach ($rss->items as $item ) { $title = $item[title]; $title = JcodeConvert($title, 4, 2); $url = $item[link]; echo '<dt><a href="'.$url.'">'.$title.'</a></dt>'; } ?> ------------------------------- 読み込むhtmlの表記 <dl> <!--#include virtual="../magpie/rss.php"--> </dl> 色々なサイトを見てみましたが、基本的なPHPの知識がなく、 まったくわからない状態です。 どなたかご教授いただければと思います。よろしくお願いいたします。

    • 締切済み
    • PHP
  • MagpieRSSで異なる複数のブログを表示

    お世話になります。PHPの初心者です。 MagpieRSSを使用して、異なる複数のブログを1つの更新欄にまとめ、 最新記事を5件表示させたいです。 いろいろ参考にしながら、下記のようなソースを組み、 なんとか複数のブログを1つにまとめるまでは出来ました。 しかしながら件数の指定方法がわからず、困っています。 どのようにしたら5件表示できるようになるでしょうか? 宜しくお願い致します。 <?php require_once 'rss_fetch.inc'; require_once 'rss_utils.inc'; require_once 'jcode.php'; include_once 'rss_utils.inc'; define('MAGPIE_OUTPUT_ENCODING', 'UTF-8'); define('MAGPIE_CACHE_ON', false); $url = array( 'http://example1.com/index.xml', 'http://example2.com/index.xml', 'http://example3.com/index.xml', 'http://example4.com/index.xml'); for ($i = 0; isset($url[$i]); $i++) { $rss = fetch_rss($url[$i]); $title = $rss->channel['title']; $title = mb_convert_encoding($title, "Shift_JIS", "UTF-8"); $rss->items = array_slice($rss->items, 0, 5); foreach ($rss->items as $item ) { $title = $item[title]; $title = mb_convert_encoding($title, "Shift_JIS", "UTF-8"); $item_url = $item[link]; $itemday = date('Y-n-j',strtotime(substr($item['dc']['date'],0,10))); $mday = date('w',strtotime(substr($item['dc']['date'],0,10))); echo "<li><strong>${itemday} $youbi[$mday] ${itemtime}</strong><a href=\"$item_url\">$title</a></li>\n"; } echo "\n"; } ?>

    • ベストアンサー
    • PHP
  • RSS 日付の取得方法

    見てくださった方、こんにちは。 php超初心者のkitakaruと申します。 ホームページを作っていて、 RSSを取得して表示させたいのですが、 それが出来ずにほとほと困っています。 htmlやcssは多少分かるのですが、 phpは全くといっていいほど分かりません。 どなたか詳しい方がいらしゃいましたら、 ご教示頂けますでしょうか。 よろしくお願い致します。 呼び出しているxmlの形式はrss2.0です。 http://i-njoy.net/tips/rss.shtml こちらのサイトを参考に 以下のようソースを書きました。 (1)のpubdateというタグの値を引っ張ってこれず そこで行き詰ってしまっています。 ちなみにタイトルなどはきちんと表示されています。 分かる方、どうぞよろしくお願いします。 <?php require_once 'rss_fetch.inc'; require_once 'code_table.ucs2jis'; require_once 'jcode.php'; $url = 'http://www.xxxxxxxxxxxxx/index.xml?mode=rss'; $rss = fetch_rss($url); $title = $rss->channel['title']; $date1 = htmlspecialchars($item['pubdate']);  //(1)rss 出力日時を取得して 変数data1に代入 $date2 = date("Y.m.d", strtotime($date1));   //(2)表示形式変換 data1を変換したものを変数data2に代入 //JcodeConvert($str, $from, $to) //0:PASS(無変換)1:EUC-JP 2:Shift_JIS 3:ISO-2022-JP(JIS) 4:UTF-8 $title = JcodeConvert($title, 4, 4); foreach ($rss->items as $item ) { $title = $item[title]; $title = JcodeConvert($title, 4, 4); $url = $item[link]; echo '<li><dl><dt>'.$date1.'</dt><dd><a href="'.$url.'">'.$title.'</a></dd></dl></li>'; //(3)変数data2を出力 } ?>

    • ベストアンサー
    • PHP
  • PHPパーサー MagpieRSSについて

    PHPパーサーのMagpieRSSを使用しています。 読み込むxmlが更新されてもそれが反映されません。 また、htmlとして書き出す際に<p>タグにid名を付けたいのですが、idをつけるとエラーがでます。これはPHPでは文法的にまずいんでしょうか?下記が使用しているソースです。 重ねて質問なんですが、下記のソースでは1つのxmlしか読み込んでいませんが、複数のxmlを読み込むにはどうしたらいいのでしょうか。 よろしくお願いします。 <?php require_once 'rss_fetch.inc'; require_once 'rss_utils.inc'; $url = 'http://www.xxxxx/xxxxxx/index.xml'; $rss = fetch_rss($url); $title = $rss->channel['title']; $title = mb_convert_encoding($title, "UTF-8", "auto"); $rss->items = array_slice($rss->items, 0, 1); foreach ($rss->items as $item ) { $description = $item[description]; $description = mb_convert_encoding($description, "UTF-8", "auto"); $url = $item[link]; $date = date("Y.m.d", $item['date_timestamp']); echo "$description?n"; } ?>

    • ベストアンサー
    • PHP
  • MagpieRSSを使用して自分のHPにxmlを表示させる方法

    お世話になります。 データベースよりxmlを生成し、自分のHPに1ページに埋め込みたいと思っています。 いろいろなサイトを参考に、MagpieRSSを使用して表示させたいのですが、コードのサンプルに記載されている他サイトのRSS・xmlは表示できるのですが、ローカルのxmlは下記のエラーが出てしまい表示できません。 Warning: MagpieRSS: Failed to parse RSS file. (not well-formed (invalid token) at line 9, column 21) in /aaa/rss/rss_fetch.inc on line 238 変更した部分は、表示するxmlのURLのみです。 使用しているphpのバージョンは4.34、MagpieRSSのバージョンは0.72です。 問題のrss.phpのソース↓ <?php require_once 'rss_fetch.inc'; define('MAGPIE_OUTPUT_ENCODING', 'UTF-8'); $url = 'http://www.aaa.com/rss.xml'; $rss = fetch_rss($url); if ($rss && !$rss->ERROR) { drawRSS($rss); }else{ echo "取得できませんでした。"; } function drawRSS($rss){ $items = array_slice($rss->items, 0, 10); echo "<ul>\n"; foreach ($items as $item ) { $title = $item[title]; $title = mb_convert_encoding($title, "UTF-8", "auto"); $url = $item[link]; $description = $item[description]; $description = mb_convert_encoding($description, "UTF-8", "auto"); echo "<li><a href=\"$url\">$title</a></li>\n$description"; } echo "</ul>\n"; } ?> 何か、対処方法をご存知の方教えてください。 よろしくお願いいたします。

    • ベストアンサー
    • XML
  • MagpieRSSを使ってrss取得の際の表示件数

    MagpieRSSを使ってrssを取得したく下記のphpを作成しました。 <?php define('MAGPIE_OUTPUT_ENCODING','UTF-8'); require_once('rss_fetch.inc'); $url="xxxx.rdf"; $rss = fetch_rss($url); foreach($rss->items as $item){ foreach($item[dc] as $key => $daytime){ if($key == "date"){ $rssdate = strtotime("$daytime"); $today = strtotime(date("Y/m/d H:i")); } if($rssdate > $today){ print("$item[title]"); } } } ?> 過去から未来の予定が書いてあるRSS(rdf)があり、 現在の時間のデータを取得して、未来の予定のを表示したいです。 現在、print("$item[title]");で未来の予定がズラっと取得できる状態です。 そして、ここからが問題なのですが、 ここ(print("$item[title]");)の表示を最新の1件にしたいのですが、どうしてもうまくいきません。 ご教授お願いします。

    • ベストアンサー
    • PHP
  • MagpieRSSでアメブロ画像取得

    MagpieRSSを使用してアメブロのRSS情報を取得しようと思います。 コチラのサイトを参考にタイトルと日付は何とか取得出来ました。 http://blog.promob.jp/fri/2009/05/phprss.html あとはアメブロの画像をリサイズして表示させたいのと、 本文を文字数制限をして表示したいと考えております。 下記サイト辺りが近いのかなと思いますが どこをどういう風にすればいいのか初心者で全くわかりません。 http://www.anaveve.com/amamjaubb/innukusu.php?itemid=46 どうかお詳しい方ご教授お願い致します。 現在のコードはこんな感じです。 <?php // MagpieRSSの読み込み require_once('magpierss/rss_fetch.inc'); // エンコード指定 define('MAGPIE_OUTPUT_ENCODING', 'UTF-8'); // キャッシュ時間の設定 define('MAGPIE_CACHE_AGE', 60*5 ); // キャッシュ保存ディレクトリ指定 define('MAGPIE_CACFHE_DIR', 'cache/'); // 表示する件数の設定 $count = 5; // 表示する文字数の設定 $length = 50; // RSSのURLを指定する $url = 'http://blog.promob.jp/fri/atom.xml'; // RSSのデータを配列で取得 $rss = fetch_rss($url); // 表示する件数のデータ以外は削除 array_splice($rss->items, $count); // 取得したデータをリストで表示 $html .= "<ul>\n"; foreach ($rss->items as $item) { // リンクURL $href = $item['link']; // タイトル $title = mb_convert_encoding($item['title'],"SJIS","auto"); // 投稿日付 $date = date('Y/m/d H:i:s',parse_w3cdtf($item['published'])); $html .= "<li>\n"; $html .= "<font color=\"#ff0000\">(" . $date . ")</font>\n"; $html .= "<a href=$href>" . $title . "</a><br>\n"; } $html .= "</ul>"; // htmlの表示 echo($html); ?> どうか宜しくお願い致します!

    • ベストアンサー
    • PHP
  • Magpie RSSを使用して日付表示できないエラー

    初めまして、お世話になります。 PHPに関しては初心者です。 Magpie RSSを使用してフィードをトップページに表示させたいのですが タイトルは問題ないなく表示されるのですが、日付を表示させようとすると1970年01月01日 と表示され取得出来ない状態です。 MagpieRSSのバージョンは0.72でRSS2.0です。 取得先はwordpress バーション2.61になります。 色々と調べてみて Magpie0.7より使用できる$item['date_timestamp']という参照方法も試してみたのですがだめでした。 サーバーの問題かと思い複数のサーバーでも試したのですが1970年01月01日と表示されてしまします。 具体的なソースは下記の通りです。 <?php require_once 'rss_fetch.inc'; define('MAGPIE_FETCH_TIME_OUT', 30); // タイムアウトまでの define('MAGPIE_CACHE_AGE', 30*60); // キャッシュ更新の時間 $url = 'フィードのURL'; $rss = fetch_rss($url); $title = $rss->channel['title']; echo "<li class=\"ItemTitle\"><a href=\"$url\">RSS記事一覧を表示</a></li>\n"; $title = mb_convert_encoding($title, "UTF-8", "auto"); $rss->items = array_slice($rss->items, 0, 10); foreach ($rss->items as $item ) { $title = $item[title]; $title = mb_convert_encoding($title, "UTF-8", "auto"); $url = $item[link]; $date_str = date("m月d日 ", $item['date_timestamp']); if ($date >= time() - 3600 * 24 * 7) { $date_str = "<EM>" . $date_str . "</EM>"; } echo "<li class=\"ItemTitle\">$date_str<a href=\"$url\">$title</a></li>\n"; }; $url = $rss->channel['link']; ?> どなたか対処法をご存じの方がおられましたらご教授頂けると 幸いに思います。 以上、よろしくお願いいたします。

    • 締切済み
    • PHP

専門家に質問してみよう