2012年10月24日水曜日

PHPとMySQLを使用した動的RSSフィードを構築する


注:どこでも[URL] [URL]の代わりにあなたのウェブサイトのURLを挿入してくださいを参照してください。

どこでも私は、チュートリアルを見つけることができますが、まれに、彼らが完成されていない見て。私が書き込みしようとして午前のチュートリアルは、完全なチュートリアルであることを意味します。確かに、RSSファイル自体に多くのオプションを追加しますが、ここで概説されているプリンシパルが続いている場合、私は完全で意味することは、誰のために働くことであることができます。さらに、遅滞なく、PHPとMySQLを使用して動的にRSSフィードを構築する権利にジャンプをすることができます

私たちのPHPベースのRSSフィードを開始するには、まず一つの小さなことを実行する必要があります。一般的にWebサーバーのルートディレクトリに位置していますあなたの "。htaccess"とファイルを見てみましょう。これは、URL書き換えを行うために使用されているファイルで、等すべてのApacheサーバーの301リダイレクトはそうそれを見ている必要があります。 Dreamweaverで、ファイルがサイトマネージャーで作成することである得ることは容易を使用している場合、すなわち右クリックして新しいファイルを作成します。ファイル "を参照してください。htaccessファイル"の名前を変更し、右側の新しく作成したファイルをクリックし、 "取得"ボタンをクリックします。再び、これはDreamweaverのユーザーのみです。私はそれがあるべきよりも、これはより複雑作っています。 Webサーバーのルートにfor.htaccessを見てください。十分に述べ

かつて我々は変更を行う必要がour.htaccessファイルを発見した。私たちのRSSファイルなので、xml型のPHP拡張モジュールすなわちrss.phpとしないのでしょう。我々はneed.htaccess type.xml shouleを持つファイルがas.phpファイルを解釈することを知っています。これを行うために、我々はour.htaccessファイルに次のように入力します。

AddTypeのがapplication / x-httpd-php.xml

行くour.htaccessファイルの準備と我々は今、私たちのRSSフィード用のPHPの記述を開始する必要があります。我々のファイルは、次の4つのセクションに分割されます。最初のファイルは、XML型であることをブラウザに指示ヘッダーです。次のセクションでは私たちのRSSファイルの先頭です。あなたがチャネルに関する静的作ること、そのすべてが、RSSフィードに関連する基本的な情報を、すなわち。それは気の利いた取得する場所を私たちの3番目のセクションがあります。我々は、データベース接続を作成し、私たちのRSSフィードを作成するために使用します。その後、我々は、データベースと出力をXMLとしてそれらにしたい各項目をループする必要があります。最後に、私たちの4番目の部分はチャネルをクローズするように要求されるすべての出力されます。そこに少しは、いくつかのechoコマンドとは別にですが、それは独自のマイナーな方法で独立したセクションです。

まず、新しいPHPファイルを作成する必要があり、私は私rss.phpに名前を付けることを選んだ、あなたが好きなあなたの名前を付けることができます。かつて我々は我々の最初のセクションで始まり、私たちのファイルを開くがあります。



我々は何かをする前に、我々はそれがXMLファイルを扱っていることを通知するブラウザにメッセージを送信したいと思います。我々がブラウザにこの情報を渡すことがなかった場合は私たちのダイナミックなRSSフィードが機能しません。それが我々のRSSファイルの最初の部分はそれでその音のように単純。

私たちの次のセクションでは、我々はXMLファイルの構造の作成を開始する必要があります。これを行うにはいくつかの方法があります。一つは、echoコマンドを使用することです。他の変数を使用することです。私は両方を使用し、それが私の心の中で単純なようなので個人的に変数法を好むしています。したがって、それは私が実証する方法です。ここで我々のコード(これは私たちの最初のセクションからコードが含まれています)は、次のとおりです。

/ /ブラウザのXMLヘッダを設定します。

ヘッダー(は 'Content-type:text / xmlに');

RSSフィード用/作成/見出し/チャンネル情報

$出力='';

$出力='';

$出力='';

$出力= 'あなたのRSSフィードの説明';

$出力= '[URL]';

?>

ここでは、次のセクションで行ったものです。まず、変数$出力を作成しました。我々は等しく設定します。しかし、一度我々はそれを上書きしない値を設定している。我々は、代わりに演算子は単に現在の値に追加を意味する "="を使用します。ですから、例えば私たちが言った場合、そのいくつかの$変数= "文字列"。次にそのいくつかの$-varのような値に追加する私たちの "="演算子を使用していました。= "いくつかのVARのように"。我々は変数$いくつかの変数をエコーし​​た場合、次のそれは "いくつかのVARのような文字列"を読んでいました。我々の変数を取り、一つの変数に格納されている一つの連続した​​XML文書を、$出力を作成するためにそれにXMLタグをすべて追加しています。注意すべきもう一つは、タイトル、説明、リンクタグでは、あなたのサイト情報に追加すべきことである。私は誰もが意図的に私は、タグの間にあった情報を使用しないと思いながら、私はそれを言及なぜそのようなささいなことを忘れがちです。

私たちの三番目のセクションのために我々はPHPの生成されたRSSページの肉と骨に取り掛かる。 MySQLデータベースに接続し、我々が必要とするすべての関連情報をつかんで、私たちがしようとしていることです。その後、我々は我々が持っている新しいエントリまたは記事ごとに個別のXMLアイテムを作成しようとしている。ユーザーはRSSページにアクセスしたときにこれは、すべて実行されます。前ではなく。ページには、静的、動的ではありません。誰かがそれをアクセスするまでの意図や目的のために我々は、RSSのページを持っていません。今すぐコードを取得することができます。

/ /ブラウザのXMLヘッダを設定します。

ヘッダー(は 'Content-type:text / xmlに');

RSSフィード用/作成/見出し/チャンネル情報

$出力='';

$出力='';

$出力='';

$出力= 'あなたのRSSフィードの説明';

$出力= '[URL]';

私たちのRSSフィードの/ /個々のアイテム

/ /データベースに接続し、我々のフィードで、新しい各項目を表示

/ / DBに接続します。

$ホスト= "localhost"を、ホストの/ /名前

$ USER = "cmsuser";データベースの/ /ユーザー名

データベースの/ /パスワード$ = "mypassを"を渡す

$ DB = "MY_DATABASE";データベースの/ /名前

mysql_connect($ホスト、$ USER、$パス);

mysql_select_db($ db)まで。

/ /私たちのRSSフィード用のSQLクエリを作成する

ます$ sql = "SELECTは` title `、`リンク `、`説明 `、`日付 `日付` DESC LIMITを0による記事は `order` FROM、15 ";

$結果=するmysql_query($ sql)を、または死ぬ( "クエリを実行することができませんでした");

/ / RSSアイテムのセクションで個々の要素のループを作成します。

するwhile($行=は、mysql_fetch_array($結果))

{

$出力='';

$出力='';

$出力= '$行['リンク ']''。

$出力='' $行['説明']''。。

$出力= '

'$行['日付 ']''。

$出力='';

}

?>

今多大なので、私は明らかにすべてをしようとすると説明させて、このセクションで発生しました。最初の "DBへの接続"をコメントで開始することができます。ここでは、データベースに接続する必要があります。通常、私は以前に関数を書くと私はデータベースに接続し、クエリを実行したい場合、単にそれを呼び出す。しかし、私たちは一緒に1を書き込むを通過しますように、すでに書かれていると仮定することはできません。まず、 "mysql_connect"と "mysql_select_db"関数のために必要な情報を格納する変数を定義します。我々は格納する必要がある情報は私たちのホスト名、一般に、その "localhost"を、データベースのための私達のユーザー名、我々のパスワード、およびデータベースの名前です。かつて我々はかつて我々がして "mysql_select_db"ステートメントを使用してデータベースを選択する必要が接続を確立し、接続mysqlデータベースを作るために使用される関数 "mysql_connect"にそれを使用して保存されている必要があります。今我々はデータベースに接続していることを我々は必要な情報を得るに取り掛かる方法を検討することができます。

今、私たちが接続されていることを我々は必要な情報を取得するクエリを実行する必要があります。は `title`、 `リンク`、 `説明`、 `日付`と、それらが次のような名前が付けられています。例えば、私はそれが4つの列が含まれているいくつかの仮定のデータベースの名前が記事であるということをした最初の人間をした。また、私は文を使用して、16に結果を制限 "... LIMIT 0,15"の行だけ0から15を表示を意味します。あなたがしたいか、それを完全に削除し、RSSフィード内のエントリの数に制限を持つことができませんどのように設定することができます。大規模なもののためにひどい小さなサイト用大丈夫。ここにあなたの裁量を使用しています。さて、私は一つのことを指摘しておきたいと思い作成した問い合わせがあることを確認します。通常は使用している人々を参照してください "SELECT * ..."をステートメントは、クエリを実行します。私はその悪い習慣だと思いますが、なぜ必要な詳細情報を取得しないだけでなく、時間がかかり、あなたのサイトにだけ、ほんの少し遅くなることができます。したがって、私はあなたのSQLクエリを形成するときに暗黙的に使用するのではなく、対象となるフィールドを明示することをお勧めします "SELECT * ..."をステートメント。今私たちはクエリを持っていることを我々はコマンド "するmysql_query"を使用してそれを実行し、巧妙にします$ resultとして知られている変数に結果を渡す必要があります。あなたは、私たちの "するmysql_query($ sql)を"ステートメントの後に私が持っている "またはダイ(...)"を気付いた場合。エラーがある場合はどうすればよい、その文がないことで、クエリを終了し、関数がその後どのようなエラーメッセージが表示される場所に括弧の中にエコーが終了します。物事がうまくいかないかもしれないところを考え出すのに便利。

これまでのところ我々は、データベースに接続し、変数は、$ resultに結果を出力するクエリを実行しています。今、私たちは小ぎれいなRSSアイテムには、このすべてを配置する必要があります。これを行うには、我々はループを作成する必要があり、どのような私たちのループが実行すると、行ごとに、クエリの行を通過し、それぞれの行から情報を引き出し、我々はそれでやりたい放題されています。このケースでは、我々はそれを格納する。そうするために我々はまだ我々の結果変数に残された行が存在する間は基本的に読み込み、whileループを作成します。我々は、括弧{の間にある任意のコード実行する必要があります... }。このループを形成しているために他の方法がありますが、今の最も直接的な方法は、私が記載されているものです。今我々が我々のxmlファイルにそれらを追加する必要があります。変数$行の私たちの行があることを確認します。私たちは親友を使用することを行う "="と基本的に我々が作成したい各項目の情報を追加します。あなたはRSSフィードで使用できるより多くのタグがあります。私は、私は必要に応じて、これはRSSの構造上の記事はありませんが、どのように動的にそれらを生成するように私が感じたすべてだったので、 "リンク"、 "説明"、 "pubdateを" "タイトル"を使用することを選択しました。

我々は4つのステップのうち3つを完了しました。我々はすべての項目が作成されて以来、我々は、データベース内の各結果を循環し、適切なタグを使用して私たちの変数に追加するには、我々はファイルを終えると、それをユーザーに表示する必要があり、whileループで、以前にそれをやった。これを行うには、次のコードを使用します。

/ /ブラウザのXMLヘッダを設定します。

ヘッダー(は 'Content-type:text / xmlに');

RSSフィード用/作成/見出し/チャンネル情報

$出力='';

$出力='';

$出力='';

$出力= 'あなたのRSSフィードの説明';

$出力= '[URL]';

私たちのRSSフィードの/ /個々のアイテム

/ /データベースに接続し、我々のフィードで、新しい各項目を表示

/ / DBに接続します。

$ホスト= "localhost"を、ホストの/ /名前

$ USER = "cmsuser";データベースの/ /ユーザー名

データベースの/ /パスワード$ = "mypassを"を渡す

$ DB = "MY_DATABASE";データベースの/ /名前

mysql_connect($ホスト、$ USER、$パス);

mysql_select_db($ db)まで。

/ /私たちのRSSフィード用のSQLクエリを作成する

ます$ sql = "SELECTは` title `、`リンク `、`説明 `、`日付 `日付` DESC LIMITを0による記事は `order` FROM、15 ";

$結果=するmysql_query($ sql)を、または死ぬ( "クエリを実行することができませんでした");

/ / RSSアイテムのセクションで個々の要素のループを作成します。

するwhile($行=は、mysql_fetch_array($結果))

{

$出力='';

$出力='';

$出力= '$行['リンク ']''。

$出力='' $行['説明']''。。

$出力= '

'$行['日付 ']''。

$出力='';

}

/ /クローズRSSチャンネル

$出力='';

$出力='';

ブラウザで/ /ディスプレイ出力

出力$をエコー。

?>

ここでそのすべての栄光の私たちの完了コードは、我々が追加されたすべての我々が以前に開いた、それぞれ私たちのチャネルやRSSタグを閉じ、以下のタグ ""と ""私達の変数を追加し、さらに2つの文です。 Webブラウザがそれを見ることができるようにその後、私たちは情報を表示する必要があります。これを行うには、我々は、単にechoコマンドを使用し、我々は以前にすべての情報を格納するために使用されるという我々の変数$出力をエコーし​​ます。あなたは今私は1つの変数に情報を追加する代わりにエコーを使用することが示唆された時、私は以前の記事で何を意味するのか見ることができるはずですが、それはポイントに加えません。何が今重要なのはあなたがその詳細な情報を追加しない限り、再度のおもちゃにする必要はありませんことを完全に動作するRSSフィードを得たということです。あなたはそれを楽しむと良いの使用にそれを置くことを願って!...

0 件のコメント:

コメントを投稿