<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>WordPressな日々 &#187; PHP</title>
	<atom:link href="http://www.junyx.net/tag/php/feed" rel="self" type="application/rss+xml" />
	<link>http://www.junyx.net</link>
	<description>WordPress、PHP、Linux、インターネット技術の解説、IT関連ニュースなど</description>
	<lastBuildDate>Thu, 08 Sep 2011 04:31:36 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>CodeIgniterでAJAX開発</title>
		<link>http://www.junyx.net/programming/2009/351</link>
		<comments>http://www.junyx.net/programming/2009/351#comments</comments>
		<pubDate>Sat, 07 Mar 2009 02:45:14 +0000</pubDate>
		<dc:creator>journey</dc:creator>
				<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[CodeIgniter]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Pleiades]]></category>
		<category><![CDATA[Prototype]]></category>
		<category><![CDATA[scriptaculous]]></category>
		<category><![CDATA[Subversive]]></category>
		<category><![CDATA[XAMPP]]></category>

		<guid isPermaLink="false">http://www.junyx.net/?p=351</guid>
		<description><![CDATA[この度、ある商品の取引演習をオンラインで行うためのシステムをPHP開発フレームワークの一つである CodeIgniter を使って開発した。株取引に似ているが、秘密入札によるオークションシステムである。売り注文情報をリア [...]]]></description>
			<content:encoded><![CDATA[<p>この度、ある商品の取引演習をオンラインで行うためのシステムをPHP開発フレームワークの一つである CodeIgniter を使って開発した。株取引に似ているが、秘密入札によるオークションシステムである。売り注文情報をリアルタイムに表示していく機能と、売り注文情報を見ながら買い注文を入れられる機能のために、AJAX技術を組み込んだ。要求仕様が確定してから演習本番までの期間がわずか半月というタイトなスケジュールだったが、受講者の皆さんに満足いただけるシステムを開発することができた。</p>
<p><span id="more-351"></span>今回の開発プロジェクトに使った要素技術は次の通りだ。</p>
<ul>
<li><a href="http://www.apachefriends.org/jp/xampp-windows.html" target="_blank">XAMPP for Windows</a> (Apache, PHP 5,  MySQL 5.1)</li>
<li><a href="http://mergedoc.sourceforge.jp/" target="_blank">Pleiades All in One</a> (Eclipse プラグイン日本語化プロジェクト)</li>
<li><a href="http://www.eclipse.org/subversive/" target="_blank">Subversive</a> (Eclipse に組み込まれた SubVersion)</li>
<li><a href="http://codeigniter.jp/" target="_blank">CodeIgniter 日本語版</a></li>
<li><a href="http://codeigniter.com/wiki/AJAX_for_CodeIgniter/" target="_blank">AJAX for CodeIgniter</a></li>
<li><a href="http://www.prototypejs.org/" target="_blank">Prototype JavaScript framework</a></li>
<li><a href="http://script.aculo.us/" target="_blank">script.aculo.us</a></li>
</ul>
<p>開発言語はPHP、開発フレームワークはCodeIgniter、AJAXライブラリはAJAX for CodeIgniter、Prototype、script.aculo.us、を使った。開発環境は日本語化された Eclipse、チーム開発でバージョン管理をするためにEclipseにデフォルトで組み込まれたSubVersionであるSubversiveを使用した。</p>
<p>できあがったアプリケーションを実際に使ってもらうと、売り注文が刻々と出され、それに対する買い注文が入っていく様子が分かり、非常に面白かった。</p>
<p>3年前にPHP＋AJAXの開発プロジェクトに参加したことがあるが、その時は肝心の部分を自分でコーディングしていないため、よく理解していなかった。今回は自分でコーディングをしたのでかなり理解が進んだと思う。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.junyx.net/programming/2009/351/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>PHPでSQL Server 2005にアクセス</title>
		<link>http://www.junyx.net/programming/2008/316</link>
		<comments>http://www.junyx.net/programming/2008/316#comments</comments>
		<pubDate>Thu, 03 Jul 2008 04:01:42 +0000</pubDate>
		<dc:creator>journey</dc:creator>
				<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[XAMPP]]></category>

		<guid isPermaLink="false">http://www.junyx.net/?p=316</guid>
		<description><![CDATA[あるプロジェクトで、Accessのデータベースに保存されているデータを元にメールを自動配信するプログラムを作ることになった。データベースがMySQLとかPostgreSQLだったらPHPでちょこっとプログラムを書けばすむ [...]]]></description>
			<content:encoded><![CDATA[<p>あるプロジェクトで、Accessのデータベースに保存されているデータを元にメールを自動配信するプログラムを作ることになった。データベースがMySQLとかPostgreSQLだったらPHPでちょこっとプログラムを書けばすむ。がしかし、Accessのデータベースとなると話は厄介だ。VBAでは Outlook の機能を使ってメール送信が行えるが、これでは自動化は無理だ。メール送信といえばPHPを使うほうがよいし、そうなるとデータベースはAccessではなく SQL Server を使うべきだ。今回は、PHP から SQL Server に接続したときに起こった問題を解決した経緯を説明する。</p>
<p><span id="more-316"></span>というわけで、動作環境の仕様は次のとおり。</p>
<ul>
<li>OS　…　Windows 2003 Server</li>
<li>DBMS　…　SQL Server 2005 Express Edition</li>
<li>ウェブサーバ　…　Apache 2.2 (XAMPP)</li>
<li>PHP　…　PHP 5.2.5 (XAMPP)</li>
<li>メールサーバ　…　Mercury Mail (XAMPP)</li>
</ul>
<p>さて、PHPからデータベースをアクセスするのだから、苦もなく動作するだろうと最初は多寡をくくっていた。ところが、そうは問屋がおろさない。全くアクセスできないのである。そこで、いろいろとググってみると、Windows版PHP付属の ntwdblib.dll (Ver. 2000.2.8.0) では動かないので新しいバージョンが必要だということがわかった。そこで、それをインストールしてみたが、今度は msvcr71.dll がないので動作できないというエラーメッセージが出る。また、これもありかを探してインストール。無事、接続できた。どちらのファイルも、Windows への影響を避けるため、システムフォルダではなく、C\:xampp\php のフォルダにコピーした。</p>
<p>それぞれのファイルのありかは次のページである。</p>
<ul>
<li>ntwdblib.dll (Ver. 2000.80.2039.0) &#8211; <a href="http://www.bss-net.co.jp/dougu-qa_sql.htm" target="_blank">http://www.bss-net.co.jp/dougu-qa_sql.htm</a></li>
<li>msvcr71.dll &#8211; <a href="http://reddog.s35.xrea.com/wiki/MSVCR71.DLL.html" target="_blank">http://reddog.s35.xrea.com/wiki/MSVCR71.DLL.html</a></li>
</ul>
<p>残念ながら、ぼくのぶつかった問題を一度に解決できるページはなかったので、ここにメモとして作成した次第だ。同じ問題に直面した方は参考にしてほしい。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.junyx.net/programming/2008/316/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>自作RSSリーダーでITニュースを公開</title>
		<link>http://www.junyx.net/wordpress/2008/302</link>
		<comments>http://www.junyx.net/wordpress/2008/302#comments</comments>
		<pubDate>Mon, 16 Jun 2008 12:34:01 +0000</pubDate>
		<dc:creator>journey</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[RSS]]></category>
		<category><![CDATA[RSSアグリゲータ]]></category>
		<category><![CDATA[RSSリーダー]]></category>
		<category><![CDATA[プログラム]]></category>

		<guid isPermaLink="false">http://www.junyx.net/?p=302</guid>
		<description><![CDATA[本日、本サイトの「ITニュース」コーナーを正式公開した。主要なIT関連サイトの新着記事のサマリーを公開日時の新しい順に並べ替えて表示したものだ。WordPressテンプレートを書いたというより、PHPのプログラム開発をし [...]]]></description>
			<content:encoded><![CDATA[<p>本日、本サイトの「<a href="http://www.junyx.net/news">ITニュース</a>」コーナーを正式公開した。主要なIT関連サイトの新着記事のサマリーを公開日時の新しい順に並べ替えて表示したものだ。WordPressテンプレートを書いたというより、PHPのプログラム開発をしたという方が近い。自分の読みたい記事をサクッと読むことができて便利だ。よろしければ、お気に入りに追加されたし。</p>
<p>以前、このようなページをBDPRSSというプラグインで作成したことがあるが、このプラグインはすでにサポートが打ち切られ、当然ながらWordPressの公式プラグインとしては登録されていない。公式プラグインのデータベースを探してみたが、結局自分のやりたいことができるものは見つからなかった。そこで、WordPressに用意されているプログラム用の関数を使ってRSSアグリゲータ（RSSリーダー）を開発することにした。今回はその概要を紹介する。</p>
<p><span id="more-302"></span>主な仕様は次の通り。</p>
<ul>
<li>複数のサイトのRSSフィードを取得すること</li>
<li>RSSフィードをキャッシュすること（2度目から素早く表示できる）</li>
<li>サイト毎に新着記事情報の数を設定できること（デフォルトは5個）</li>
<li>新着記事は公開日時の新しい順に並べ替えること</li>
<li>表示する情報は、タイトル（リンク）、日付、サイト名（リンク）、サマリー</li>
<li>サマリーの最大文字数は全角200字とする</li>
<li>200字を超える場合は &#8216;&#8230;&#8217; を表示する</li>
<li>サマリーの後ろに、「続きを読む（リンク）」を表示する</li>
<li>日付データの不具合に対処するため、サイトによって公開日時のプラスマイナス時間数を指定できる</li>
</ul>
<p>現在のところ、RSSフィードを取得しているサイトは次の通り。</p>
<ul>
<li>ITmedea 総合</li>
<li>ZDNet Japan 総合</li>
<li>CNET Japan 総合</li>
<li>The Blog　Hearald 翻訳版</li>
<li>Engadget 日本版</li>
</ul>
<p>テンプレート開発の上で肝となるのが、<span style="text-decoration: underline;">rss.php</span> というライブラリと、<span style="text-decoration: underline;">fetch_rss</span> という関数だ。これらは MagpieRSS というオープンソースのプログラムライブラリから WordPress に取り込まれたものだ。</p>
<p>また、ページ用のテンプレートに名前を付けておく必要がある。ファイル先頭のPHPソース部分に次のように書く。</p>
<blockquote><p>/*<br />
Template Name: RSS_IT<br />
*/</p></blockquote>
<p>これにより、「ITニュース」のページに「RSS_IT」のテンプレートを適用することができるようになる。オリジナルのページ用テンプレートを作成する場合は必要となるので覚えていただければと思う。</p>
<p>テンプレートファイルのソースコードも公開した。</p>
<ul>
<li><a href="http://new.junyx.net/wp-content/uploads/2008/06/rss_pagephp1.txt">RSSリーダー・テンプレート</a></li>
</ul>
<p>右クリックして、「リンク先を保存」で保存する。ファイル名が rss_page.php.txt となっているので、.txt を削除する。文字コードはUTF-8だ。</p>
<p>バグなどあればお知らせいただきたい。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.junyx.net/wordpress/2008/302/feed</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
	</channel>
</rss>

