独学Linux

Linuxの導入から応用まで、独学で学んだことを綴って、仲間を増やします! 日々の格闘を報告したいと思います。

HOME最新版公開スケジュールYouTubeDesktop Linux Q&AFedora Users ForumUbuntu日本語フォーラム

Lamp

PHPでRSSフィードを表示する方法

LAMPサーバーの応用で、PHPを使ってRSSフィードを表示させるにはどうしたらいいんだろうと思って調べてみたら、PHP5であれば、「simplexml_load_file」という関数で比較的簡単にRSSフィードを取得することができることがわかりました。ただし、titleやlinkなどの要素の構成がサイトによって微妙に異なるため、それぞれのRSSフィードのソースファイルの構造を確認して、記述方法を工夫する必要があります。以下、RSSとAtomのケースが混在していますが、それぞれのサービスに対応したコードになっているはずです。

all-rss
Twitterの特定のユーザのつぶやきを表示させたり、ニコニコ動画の最新動画のリストや、YouTubeで特定のキーワードを検索した動画のリストをサムネール入りで表示させることもできます。

※ 色付けやレイアウトはCSSで指定しています。


ざっと確認したところ、次の3つのパターンに当てはまるものが多いようです。

【パターン1】
それぞれのエントリーのtitle要素とlink要素がitem要素で囲まれていて、URLがlink要素に挟まれたテキストで指定されている。
【パターン2】
それぞれのエントリーのtitle要素とlink要素がitem要素で囲まれていて、さらに全体がchannel要素で囲まれ、URLがlink要素に挟まれたテキストで指定されている。
【パターン3】(Atom?)
それぞれのエントリーのtitle要素とlink要素がentry要素で囲まれていて、URLがlink要素のhref属性で指定されている。

以下のコードに出てくる変数は、次のように各項目と対応しています。

$rssurl = rssやatomのフィードのURL
$outdata = 表示する項目
$num_of_data = 表示する項目の数



続きを読む

LAMPサーバーを使いこなそう《PHP+MySQL編》

今回は、具体的なサンプルを使って、前回の冒頭で紹介したPHPでMySQLを利用する方法をまとめます。なお、MySQLのデータベースは事前に用意しているものと仮定しています。慣れていない方のために、そのあたりをきちんと書いてからとも思いましたが、結論を後回しにしてしまうと、興味が薄れてしまうかも知れないので、先に書いてしまいます。

php-mysql-sample2
前回のサンプルを簡略化して、CSSでスタイルを反映させてみました。PHPを選んだ理由は、CSSを適用するのに通常のhtmlと同様に扱うことができることと、WEBアプリケーションを作るのに、おそらく最も簡単で初心者でもすぐに使えるプログミング言語ではなかろうかと思っているからです。
Perlを使ったCGIも試してみましたが、PerlではCSSを適用させるだけでも、結構苦労しました。



動的なサイトを作る際に利用されるスクリプトには、PHPの他にも、PerlやPythonやJavascriptなどがあります。[2012.3.31 一部削除しました]

ちなみに、PHPの場合、出力された結果だけが表示されるので、ユーザ側からページのソースをみても、設定がきちんとされていれば、PHPのソースコードを見ることはできません。設定を間違えて、ソースコードだけが丸見えになってしまうことはあり得ますけど。

PHPの基礎知識

さて、前回の方法でLAMPサーバーを導入すると、PHPでMySQLを扱う環境はすでに出来上がっていますので、ちょっと試してみましょう。

基本的にPHPのコードは、htmlファイルの中に、次のような形で挿入します。

<? php
   PHPのコマンド;
?>


例えば、次の内容のtest.phpというファイルを作成し、前回作成した/home/user/wwwの中に保存して、http://(ローカルIPアドレス)/test.php にアクセスしてみてください。

<html><body><p>
Today: 
<?php 
  echo date("Y/m/d"); 
?>
</p></body></html>


Today: 2012/03/30 (←日付が入ります) と表示されれば、PHPがきちんと動作しています。

なお、PHPの処理結果は、冒頭部分が<html>で始まっていたとしても、拡張子を.phpとしておかないと反映されませんので、注意が必要です。

ここでPHPの解説を長々とやってしまうと、なかなか本題に入れませんので、詳しくはPHPの入門用のサイトを参照していただくとして、早速、MySQLとの連携の話に移りましょう。

続きを読む

LAMPサーバーを使いこなそう《導入編》

最近、サーバーに関連することを色々試しているので、少しまとめておきたいと思います。

LAMP(ランプ)とは、OSとしてLinuxを、WebサーバーとしてApache HTTP Serverを、データベースサーバーとしてMySQLを、スクリプト言語としてPerl、PHPなどを用いたシステムの総称です。

WordPressなどのCMS(Contents Management System)を使う場合は、それぞれのユーザやデータベースの作成以外にMySQLやPerlやPHPをほとんど意識することはないかも知れません("具体的なテーブルの作成やコーディングなどをしなくてもいい"という意味)が、自分で必要な機能に絞ったシステムを作りたいというときには、MySQLやPerlやPHPの知識も必須となります。

php-mysql
【MySQLとPHPの連携イメージ】
使用したデータは単なる都道府県の人口とその順位ですが、MySQLのデータベースに47都道府県のデータを登録し、1列目に1位〜20位の、2列目に21位〜40位の、3列目に41位〜47位のデータを、PHPを使ってSQL文で呼び出しています。一見すると簡単にできそうですが、設定せずに普通に実行すると、文字化けしたりしてなかなかうまくいきません。詳細は次回にまとめます。


LAMPサーバーの導入

まずLAMPのL、つまりLinuxですが、今回は情報として新しい方がよいと思いまして、Ubuntu 12.04LTSの開発版を使いました。次に、LAMPのA、つまりApacheですが、12.04のデフォルトのApache2を用います。単純なWEBサーバーの導入であれば、「apache2」というパッケージをインストールするだけで十分ですが、LAMPの残りのM(MySQL)やP(PHP)との連携を考え、taskselで一括導入します。

taskselはデフォルトでは入っていないので、まずこれをインストールしておきます。
$ sudo apt-get install tasksel
インストールしたら、taskselを実行します。
$ sudo tasksel
あとは次のように設定してLAMPサーバーを導入します。続きを読む


サイト内検索

月別アーカイブ
カテゴリ
最近のコメント
モバイル用QRコード
QR-mobile

Livedoor Reader
Subscribe with livedoor Reader
関連書籍など
週刊アスキー
カンタンUbuntu!(ムック1)

週刊アスキー
カンタンUbuntu!2(ムック2)

週刊アスキー
らくちんUbuntu!(ムック3)

週刊アスキー
さくさくUbuntu!(ムック4)

Ubuntu Magazine Japan
ubumag-01cover
vol.01

Ubuntu Magazine Japan
ubumag-02cover
vol.02

Ubuntu Magazine Japan
ubumag-02cover
vol.03

Ubuntu Magazine Japan
ubumag-02cover
vol.04
表紙モデルに注目!
5月31日(月)発売