• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:feedcreator.class.phpを導入したいのですが)

feedcreator.class.php導入の方法とデータベース接続について

このQ&Aのポイント
  • feedcreator.class.phpを使用してホームページをRSS配信するために、正しくダウンロードと設定を行いましたが、エラーが発生し、空白のページが表示されます。原因はデータベース接続にある可能性があります。
  • feedcreator.class.phpのソースコードを確認したところ、データベースからのデータ取得が行われていることがわかりました。しかし、データベース接続が正しく行われていないため、データを取得できていない可能性があります。
  • 通常、feedcreator.class.phpを使用すると、指定したフォルダに動的にXMLファイルが生成されるという理解で正しいです。しかし、正しく設定されていない場合、ファイルが生成されず、空白のページが表示されることがあります。

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

  • ベストアンサー
  • tany180sx
  • ベストアンサー率63% (239/379)
回答No.1

>エラーはでずまっしろのページが エラー出力を抑制しているから真白になるのでしょう。 エラーを表示する設定が必要です。(エラーを表示しないと解決はたぶん無理;) display_errors = On error_reporting = E_ALL ( <?php error_reporting(E_ALL); ?> ) >データベース接続されていないのですが、 参考のURLにもありますが、この記述では接続できません。 どうもそれなりに既にコードを書いている人むけな感じです。 >動的にできると理解しているのですが、あっているでしょうか? 動的に出しつつ、ファイルを書き出すようです。 とりあえずそれっぽく動かしたので。 CREATE TABLE news (id integer, created timestamp, title text, url text, description text, source text, author text); insert into news values (1, NOW(), 'aaa', 'bbb', 'ccc', 'ddd', 'eee'); <?php include("feedcreator.class.php"); $dbHost = 'localhost'; $dbName = 'db1'; $dbUser = 'root'; $dbPass = ''; $feedSQL = 'SELECT * FROM news'; $feedFile = 'news/feed.xml'; $feedDisplay = true; $rss = new UniversalFeedCreator(); $rss->cssStyleSheet = ''; $rss->useCached(); $rss->title = "Nnews"; $rss->description = "RSS"; $rss->link = "http://domain.dom/"; $rss->syndicationURL = "http://domain.dom/rss.xml"; //$image = new FeedImage(); //$image->title = "dailyphp.net logo"; //$image->url = "http://www.dailyphp.net/images/logo.gif"; //$image->link = "http://www.dailyphp.net"; //$image->description = "Feed provided by dailyphp.net. Click to visit."; //$rss->image = $image; mysql_connect($dbHost, $dbUser, $dbPass); mysql_select_db($dbName); mysql_query('set names utf8'); $res = mysql_query($feedSQL); while ($data = mysql_fetch_object($res)) { $item = new FeedItem(); $item->title = $data->title; $item->link = $data->url; $item->description = $data->description; $item->date = strtotime($data->created); $item->source = $data->source; $item->author = $data->author; $rss->addItem($item); } $rss->saveFeed("RSS1.0", $feedFile, $feedDisplay);

Scotty_99
質問者

お礼

回答ありがとうございました。 まず、 >display_errors = On >error_reporting = E_ALL ( <?php error_reporting(E_ALL); ?> ) > という項目がなかったです。errorで検索してみたのですが・・・。 >参考のURLにもありますが、この記述では接続できません。 そんな記述があったとは・・・???探してみます。 接続されていなければ値取れなくて当たり前ですよね。 >とりあえずそれっぽく動かしたので。 う~ん、自分が書いたコードとちがわないのですが・・・。 LOCALHOST上でやったのがよいのでしょうか? 私はレンタルサーバー上でやっています(ろりぽ)。 なんとか使えるようになればよいのですが・・・。

その他の回答 (2)

  • tany180sx
  • ベストアンサー率63% (239/379)
回答No.3

エラーについて 標準では php.ini の設定が反映されますが、 ソースコードの最初の方にでも以下のように書けばエラーが表示されます。 // エラー表示のオンオフ // error_reporting より優位 ini_set('display_errors', 1); // 全ての PHP エラーを表示する error_reporting(E_ALL); // 全てのエラー出力をオフにする error_reporting(0); error_reporting http://jp.php.net/manual/ja/function.error-reporting.php

  • tany180sx
  • ベストアンサー率63% (239/379)
回答No.2

アドバイスとして。 理由は省略しますがこのソースを使うのはやめた方がいいかと。 ソースに組み込むタイプなら、PEARとかZendFrameworkのFeed/XMLライブラリを 使ったほうがいいと思います。

Scotty_99
質問者

お礼

回答ありがとうございました。 PEARとかのほうがよいのですか。 PEARをレンタルサーバーにダウンロードして、ソース上でincludeして クラスを呼び出して使うんですよね。 PHPの逆引き辞典で似たような表記があるのですが、また研究してみます。

関連するQ&A