PHP4でWeb上のRSSを簡単に読み込んでみた
またちょっとRSSをPHPで読み込みたくなったのだけど、前に
RSSを表示するツール(PHP) PHPでGoo天気RSSを読み込んで表示する
とやった方法もあるのだけれど、もちょっと簡単にできないもんかと久々に調べてみた。
調べてみてわかったのだけれど、PHP4とPHP5でやり方が変わっている。PHPは互換性とかないんだね。
PHP5だとPHP5を試してみる – SimpleXML関数でRSSしてみる by Do You PHP?にあって、すっごくシンプルにできそうなんだけど、やりたい環境がPHP4なので、PHP4の方法を調べてみる。
PHP4だと、Keith Devens .comのPHP XML Library, version 1.2bを使った方法が簡単そうだった。ここにあるライブラリをxml.phpをいう名前でダウンロードしてくる。それを置くだけ・・・という手軽さが最高。
xml.phpをダウンロードしたら、RSSを読み込むPHPを書いてみる。
<?php include(‘xml.php’); $RSS_HOST = ‘http://daipresents.com/weblog/fujihalab/rss.xml’; $xml_data = file_get_contents($RSS_HOST); //$xml = mb_convert_encoding(file_get_contents($RSS_HOST), ‘UTF-8′, ‘auto’); $data = XML_unserialize($xml_data); echo "<ul>"; foreach($data['rss']['channel']['item'] as $entry){ echo ‘<li><a href="’ . $entry['link'] . ‘">’ . $entry['title'] . ‘</a>(‘ . $entry['pubDate'] . ‘)</li>’; } ?>
今回はRSS2.0を読み込んでいる。
これだけで、RSSのタイトルリンクをHTMLで出力してくれる。すげー楽。時代は変わったな。
SemanticScuttleの設定
config.inc.phpで設定可能。
以下、変えてみた部分。
adminemail 自分のメールアドレスに変更。 antispamQuestion アンチスパム用の設定だけど、家環境では必要ないので「”」にした。 antispamAnswer 上に同じ。 shortdate 「’Y/m/d’」に修正。 longdate 「’Y F j’」に修正。 useredir プライバシー関係の設定らしいが使わないのでfalse。 url_redir useredirがfalseなので使われないけど、Googleになっていたので「http://localhost」にしておいた。 enableWebsiteThumbnails 外部サイトに飛ぶみたいなので、falseにしておいた。
ソーシャルブックマークのSemanticScuttleをインストール
僕のいる会社にはいろんな情報がたくさんあって、それぞれ別アプリで管理されている。
そこで、ポータルみたいなのがあったらいいなーと思って提案したのだが、「また増えるのか」というごもっともな意見があり断念。「増える」というより「これで増えるのは最後」という意味にしたかったけど、やっぱりそれは難しい。
そこで、今あるWeb情報をまとめるものがあればいいんじゃないかという意見があがったので、いいものがないものかと調べてみた。
個人的に考えたのが、
リンク集みたいなのだったらいいかも ページをタグ分類できてほしい
だったので、ソーシャルブックならばと思い、頼りにしているMoongiftさんを調べて「SemanticScuttle」を入れてみることにした。バージョンは0.89。
環境は以下。インストールはApache2.2.9+PHP5.2.6+MySQL5.0.67をWindowsVistaにインストールをご参考ください。
Windows Vista Apache2.2.9 PHP5.2.6 MySQL5.0.67
インストール
The World Connectさんを見ながらインストール。
SemanticScuttleからダウンロードしてきて解凍。
phpMyAdminからscuttleというDBを作成。ujis-japanese-ciで作った。utf8_unicode_ciで作った。じゃないと文字化けして登録できない。
次に解凍したフォルダにあるtables.sqlをphpMyAdminから実行。
config.inc.php.exampleをconfig.inc.phpにリネーム。以下を記述。
$locale = ‘ja_JP’; $dbtype = ‘mysql4′; # Database driver {mysql, mysqli, mysql4, oracle, postgres, sqlite, db2, firebird, mssql, mssq-odbc} $dbhost = ’127.0.0.1′; # Database hostname $dbport = ’3306′; # Database port $dbuser = ‘root’; # Database username $dbpass = ‘pass’; # Database password $dbname = ‘scuttle’; # Database name
さっそくj「http://localhost:8888/semanticscuttle/」にアクセスしてみると、以下のエラーが出る。
Warning: setlocale() [function.setlocale]: Passing locale category name as string is deprecated. Use the LC_* -constants instead in C:\fujihara\Apache Software Foundation\Apache2.2\htdocs\semanticscuttle\includes\php-gettext\gettext.inc on line 131 Warning: setlocale() [function.setlocale]: Invalid locale category [...]
Apache2.2.9+PHP5.2.6+MySQL5.0.67をWindowsVistaにインストール
VistaはProgram Filesをかなり厳しく見ているので、「httpd.confがいじれない!」とかなってしまった。そこで「c:\fujihara」フォルダを作り、そこにアプリをインストールして対応。自宅用だからこれでいっか。
MySQL管理用に「phpMyAdmin-2.11.9.2」もインストール。MySQLの管理はLinuxでも使う可能性があるのでphpMyAdminを使ってみる。
The Apache HTTP Server Project PHP MySQL The phpMyAdmin Project インストール
Apacheはインストールするときに「Custom」とかを選んで、インストールフォルダを「c:\fujihara」に指定。勉強用なのですべてのモジュールをつっこんでおくといいかも。
httpd.confの239行目あたりにあるDirectoryIndexにindex.phpを追加。
<IfModule dir_module> DirectoryIndex index.html index.php </IfModule>
MySQLもインストールフォルダを「c:\fujihara」にして、インストール後にDBの設定ウィザードが開くので、「Best Support for Multilingualism」を選んだ。
PHPではApache2.xモジュールを選択してインストール。その他インストールするアイテムとして以下が必要。どれもphpMyAdminでつかってるらしい。
Extensions/MySQL Extentions/Mcrypt Extensions/Multi-Byte String Extensions/zip
勉強用なので全部突っ込んどくか。
インストール後にmbstringの設定をphp.iniにした。
mbstring.language = Japanese mbstring.internal_encoding = UTF-8 mbstring.http_input = auto mbstring.http_output = UTF-8 mbstring.encoding_translation = On mbstring.detect_order = auto mbstring.substitute_character = none; phpMyAdmin
phpMyAdminのconfig.sample.inc.phpをconfig.inc.phpにリネームする。ファイルを開くと
$cfg['blowfish_secret'] = ‘fujihara’; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
というのがあるはずなので、「fujihara」のように値を設定してあげる。
あとはhtdocsに「phpmyadmin」フォルダとか作ってファイルをそこにおいてあげるだけ。ブラウザからアクセスするとログイン画面が表示される。
なんだかよくわからんけど、MySQLで設定したroot/passではいれた。
httpd.exe: Could not reliably determine the server’s fully qualified domain name
使い始めて、突然Apacheが停止した。PHPも動作しなくなり真っ白なページが表示される。
イベントビューアを見るとエラーが出まくっていて、
httpd.exe: Could not reliably determine the server’s fully qualified domain name, using [...]
PHP5.2.1インストール
Windows用インストーラーを使えばらくちん。httpd.confまで修正してくれる。
デフォルトでえいや!とするとhttpd.confに以下の行が追加される。
#BEGIN PHP INSTALLER EDITS – REMOVE ONLY ON UNINSTALL
PHPIniDir “C:\\Program Files\\PHP\\”
LoadModule php5_module “C:\\Program Files\\PHP\\php5apache2_2.dll”
#END PHP INSTALLER EDITS – REMOVE ONLY ON UNINSTALL
PHP5.2.0へのアップデート
アップデート 展開
ZIPファイルを展開してPHP用のフォルダに配置しておく
例:C:\php\php-5.2.0-Win32 php.iniの修正
システムフォルダ(XPだとC:\WINDOWS)にあるphp.iniをリネームしてとっておく。そして、php.ini-distをコピーしてシステムフォルダに「php.ini」という名前でコピー。元のファイルを参考に修正を行う。
include_pathを修正する doc_rootを修正する extension_dirを修正する httpd.confの修正
ApacheがPHPを呼び出すところが変わるので修正
LoadModuleのPHPモジュールのパスが変わっているはず ScriptAliasのPHPへのパスが変わっているはず それでは
以上でUpdateは完了するはず。
PHP5.1.2インストール
PHPのサイトから最新モジュールをダウンロードする。
ダウンロードしたファイルを展開する。「c:\php」などといったフォルダを作成し、展開したフォルダを配置する。
php5ts.dllのコピー
解凍したフォルダ(以下PHPルート)にあるphp5ts.dllをWindowsのシステムフォルダにコピーする。
W2K C:\WINNT XP C:\WINDOWS php.ini-distのコピー
PHPルートにある「php.ini-dist」を「php.ini」にリネームしてWindowsのシステムフォルダにコピーする。
php.iniの修正
環境に合わせて修正する。
include_path
PEARを使う場合は以下の記述にする。(使わない場合はデフォルトでいい)
include_path = “.;c:/php/php-5.1.2-Win32/includes;c:/php/php-5.1.1-Win32/pear” doc_root
WEBサーバのdocument rootとあわせておく。
doc_root =”D:/root” extensiton_dir
拡張ディレクトリ
extension_dir = “c:/php/php-5.1.1-Win32/ext” extensiton
拡張する場合(MySQLをつかうときなど)は以下のコメントをはずして利用可能にする。
extension=php_mysql.dll httpd.confの修正
WEBサーバにPHPを教えてあげないといけない。
LoadModule
phpモジュールを利用可能にする。
Tomcatと連携するときは1mod_jkなどを追加。
LoadModule php5_module C:/php/php-5.1.2-Win32/php5apache2.dll
#LoadModule jk_module modules/mod_jk.so
#LoadModule jk2_module modules/mod_jk2.so DirectoryIndex
デフォルト表示ページに「index.php」を追加する。
DirectoryIndex index.html index.html.var index.php AddType
PHPを追加。
AddType application/x-httpd-php .php
PHP5.0.5インストール
ダウンロード
PHPダウンロードより「php-5.0.5-Win32.zip」をダウンロード。ここでのバージョンは5.05。
ダウンロードしたファイルを解凍して、「C:\php\php-5.0.5-Win32」あたりに配置する。
DLLファイルのコピー
php5ts.dllをWindowsのシステムフォルダにコピーする。
Windows2000 C:\WINNT Windows98/MeとWindows XP/Windows Server 2003の場合 C:\WINDOWS。 php.ini-distのコピー
php.ini-distファイルはPHPの設定ファイルである「php.ini」のオリジナルファイルとなる。これをWindowsシステムフォルダ内にコピーしてPHPを実行できるようにする。
php.ini-distファイルを「php.ini」にリネームしてシステムフォルダにコピーする。
Windows2000 C:\WINNT Windows98/MeとWindows XP/Windows Server 2003の場合 C:\WINDOWS。 php.iniの修正
テキストエディタでphp.iniの内容を修正する。全角文字などを使用するとあまりよくないらしい。
フォルダの階層は¥ではなく/で指定することに注意!
include_path
PEAR(PHP標準のクラスライブラリ)を使わない場合はinclude_pathの指定は不要。PEARを使う場合はinclude_pathを下記のように指定。
include_path = “.;C:/php/php-5.0.5-Win32/includes;C:/php/php-5.0.5-Win32/pear” doc_root
WEBサーバのドキュメントルートを決定する。おそらくココで指定したフォルダ以下でPHPが動作するのではないか?デフォルトはApacheをインストールしたフォルダの下にある「htdocs」になっている。
extension_dir
PHP4ではextensionsだったのがPHP5からはextに変更されている。
extension_dir = “c:/php/php-5.0.5-Win32/ext” 使用するDLLを指定
MySQLやPstgreSQLを使用する場合は、専用のDLLを使えるようにする。
php_mysql.dll MySQLのDLL php_pgsql.dll PostgreSQLのDLL
など使用するDLLのコメント(; セミコロン)を外して有効にする。
mbstring
マルチバイトの設定を行う場合は以下の場所を設定するとよい。
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_output = UTF-8 httpd.conf(Apacheの設定)
Apacheと連動するようにApacheの設定ファイルを修正する。
LoadModule
php5モジュールをロードするように設定する。
LoadModule php5_module C:/php/php-5.0.5-Win32/php5apache2.dll DirectoryIndex
index.htmlのようにデフォルトで読み込まれるファイル拡張子に「.php」を追加。
DirectoryIndex index.html index.html.var index.php ScriptAlias
ScriptAliasを設定。意味は良くわからないけどCGIの場所指定?。
ScriptAlias /php/ “C:/php/php-5.0.5-Win32″ AddType
AddTypeを設定。
AddType application/x-httpd-php .php 確認
ここまでできたらApacheを再起動して、docroot以下にPHPファイルを配置する。
// test.php例
<? phpinfo() ?>
ブラウザを開き「http://localhost/test.php」を見ると、インストールしたPHPの情報が表示される。
僕について
Dai Fujihara
A hero can be anyone.
藤原大はマネージャでありアジャイル実践者だ。そして、プロジェクトリーダー、チェンジ・エージェント、アジャイルコーチ、トレーナーでもある。彼はまたRedmine、Jenkinsといった開発を支援するツール環境の整備や、アジャイル開発を活用した創造的なソフトウェア開発の支援を行っている。さらに、趣味は沖縄離島巡りらしい。
ここ最近の人気
アジャイルコミュニティは超めんどうくさい… 849 view(s)
3年使ったRedmineの使い方について共有したい10の… 508 view(s)
開発ツールを使うと「思いやり」が減る(前半) #swat… 499 view(s)
開発ツールを使うと「思いやり」が減る(後半) #swat… 358 view(s)
チームとタワーを創造せよ!マシュマロチャレンジでチームビ… 280 view(s)
Javaで入力チェックに使える正規表現まとめ… 181 view(s)
Redmineプラグイン開発 – 史上最高のチームプラグ… 139 view(s)
LinkStationのようなNASを買ってもバックアッ… 99 view(s)
DAOとかDTOとかVOとかEntityとか… 92 view(s)
Redmineプラグイン開発 – パーキングロットチャー… 81 view(s)
永久保存の本
Jonathan Rasmusson (著), 西村 直人 (翻訳), 角谷 信太郎 (翻訳)
アジャイルサムライ―それはソフトウェアを顧客に届ける猛々しきプロフェッショナルだ。本書では、圧倒的なアジャイルプロジェクトの姿を見せる。2011年爆発的にヒットしたアジャイル開発に情熱を持つエンジニアに届けたい本。
Mike Cohn (著), マイク コーン (著), 安井 力 (翻訳), 角谷 信太郎 (翻訳)
採用した現在のタイトルは、見積りや計画づくりといったプロセスを、アジャイルに進めなければならないと謳っているのだ。見積りと計画づくりがアジャイルでないのに、プロジェクトがアジャイルであるということはありえない。(イントロダクションより)
Venkat Subramaniam (著), Andy Hunt (著), 木下 史彦 (監訳), 角谷 信太郎 (監訳)
アジャイルな習慣とは一体何なのか?本書ではプラクティスを交えながら、その姿勢を読者に問いかけている。世代や役割をこえて色褪せない「アジャイル」に対する良書。Amazonレビュー
メアリー・ポッペンディーク (著), トム・ポッペンディーク (著), 高嶋 優子 (翻訳), 天野 勝 (翻訳), 平鍋 健児 (翻訳)
「トヨタ生産方式」を源流にする「リーン開発」をソフトウエア開発に取り入れるための具体的方法を紹介した本です。本書は、リーンの7大原則を「価値」「ムダ」「スピード」「人」「知識」「品質」「パートナー」に整理し、ソフト開発現場にどうしたら効果的に適用できるかを、多くの実例を交えながら具体的に説明します。
タグ
Agile ant Apache bash Eclipse GlassFish install Java Javascript kobo Linux log4j Management Maven Open Source PHP Pukiwiki Python Redmine Ruby Ruby on Rails Scrum Spring Struts Struts2 Subversion Test Tomcat Trac VBA Web WebDriver WebLogic Windows WordPress 働く 勉強会 嫁(ベータ) 思い出し笑う 我思う 旅する 映画/ドラマ 英語を話す 読むと聞く 過去を語るアーカイブ









