<?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>sks blog &#187; PHP</title>
	<atom:link href="http://sks.s201.xrea.com/blog/archives/tag/php/feed" rel="self" type="application/rss+xml" />
	<link>http://sks.s201.xrea.com/blog</link>
	<description>気になったこと、役に立ちそうだなと思ったことなどを公開しています。</description>
	<lastBuildDate>Sun, 19 Apr 2009 06:55:21 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>EmEditorのPHP構文ファイル(PHP 5.3)</title>
		<link>http://sks.s201.xrea.com/blog/archives/591</link>
		<comments>http://sks.s201.xrea.com/blog/archives/591#comments</comments>
		<pubDate>Sat, 28 Mar 2009 06:19:23 +0000</pubDate>
		<dc:creator>shuichi</dc:creator>
				<category><![CDATA[その他]]></category>
		<category><![CDATA[EmEditor]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[プログラミング]]></category>

		<guid isPermaLink="false">http://sks.s201.xrea.com/blog/?p=591</guid>
		<description><![CDATA[以前作成したEmEditorのPHP構文ファイルをアップデートした。とりあえずPHP 5.3で追加されるキーワードにも対応してみたつもりだが、足りないかもしれない。
ちなみにこのサーバーのPHPで自動生成しているので、関 [...]]]></description>
			<content:encoded><![CDATA[<p>以前作成した<a href="http://sks.s201.xrea.com/php/php.esy">EmEditorのPHP構文ファイル</a>をアップデートした。とりあえずPHP 5.3で追加されるキーワードにも対応してみたつもりだが、足りないかもしれない。</p>
<p>ちなみにこのサーバーのPHPで自動生成しているので、関数名などはサーバーのPHPにロードされている拡張に依存するので注意。</p>
]]></content:encoded>
			<wfw:commentRss>http://sks.s201.xrea.com/blog/archives/591/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FirefoxのPHPマニュアル検索プラグイン</title>
		<link>http://sks.s201.xrea.com/blog/archives/440</link>
		<comments>http://sks.s201.xrea.com/blog/archives/440#comments</comments>
		<pubDate>Sat, 22 Jul 2006 04:45:20 +0000</pubDate>
		<dc:creator>shuichi</dc:creator>
				<category><![CDATA[その他]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[プラグイン]]></category>
		<category><![CDATA[検索]]></category>

		<guid isPermaLink="false">http://sks.s201.xrea.com/blog/archives/440</guid>
		<description><![CDATA[PHPマニュアル検索プラグインからインストールできます。

ここからはつまらない説明なので読まなくてもよいです。

Firefox 2では検索プラグインのフォーマットが変更となり、MozSearchというフォーマットが採 [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://sks.s101.xrea.com/mozsearch/php/">PHPマニュアル検索プラグイン</a>からインストールできます。</p>
<p><img src='/blog/wp-content/php-manual-search.png' alt='PHPマニュアル検索' /></p>
<p>ここからはつまらない説明なので読まなくてもよいです。</p>
<p>
Firefox 2では検索プラグインのフォーマットが変更となり、MozSearchというフォーマットが採用されました。MozSearchは<a href="http://opensearch.a9.com/">Amazonの検索エンジンA9のOpenSearch</a>を簡略化したものです。MozSearchでは検索キーワードの候補をリスト表示するサジェスト機能もサポートされています。MozSearch検索プラグインについては<a href="http://developer.mozilla.org/en/docs/Creating_MozSearch_plugins">Creating MozSearch plugins</a>を参照してください。
</p>
<p>
上で示した記事をざっと読んでみると簡単に作れそうだったので、PHPマニュアル検索プラグインを作成してみました。PHPマニュアル検索プラグインは探せばいくらでもあると思いますが、今回私が作成したものではいくつかの検索キーワードが追加されており(PHP本家の検索フォームではうまく検索できないキーワードをサポート)、サジェスト機能もサポートしています。また<a href="http://opensearch.a9.com/spec/1.1/description/#autodiscovery">OpenSearch Autodiscovery</a>に対応しているのでインストールも簡単です。インストールするには<a href="http://sks.s101.xrea.com/mozsearch/php/">PHPマニュアル検索プラグイン</a>を開いてFirefoxの検索バーのドロップダウンリストを表示して「&#8221;PHP Manual Search&#8221;を追加」をクリックしてください。
</p>
<p>
検索キーワードに対応するマニュアルページへのリダイレクトとサジェスト機能はこのサーバのPHPとSQLiteを利用しています。PHPのキーワードのデータベースはPHP 5.1.6で自動生成しました。PHPにロードされていたモジュールの有無によってキーワードに対応するマニュアルが存在しない、またはマニュアルは存在するがそれに対応するキーワードがデータベースに登録されていない場合があります。
</p>
<p>
サジェスト機能はFirefoxからのリクエストに対してキーワードの候補リストをJSONという形式で返すことで実現できます。JSONの処理には<a href="http://www.hawklab.jp/jsonencoder/">Jsphon</a>を使わせてもらいました。以下のURL先を開くと&#8221;get&#8221;というキーワードに対するキーワードの候補リストがJSON形式で表示されると思います。
</p>
<p>
<a href="http://sks.s101.xrea.com/mozsearch/php/json/?q=get">http://sks.s101.xrea.com/mozsearch/php/json/?q=get</a>
</p>
<p>
Firefox 1.5以前のような検索プラグインを作成するのは簡単ですが、サジェスト機能をサポートするとなるとけっこう面倒です。
</p>
<p>
追記(2006/08/13): キーワードのデータベースに関係のないキーワード(私が定義していたクラスや関数…)が混入していましたので削除しました。</p>
]]></content:encoded>
			<wfw:commentRss>http://sks.s201.xrea.com/blog/archives/440/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>EmEditor用のPHP構文ファイル生成スクリプト(PHP5対応)</title>
		<link>http://sks.s201.xrea.com/blog/archives/383</link>
		<comments>http://sks.s201.xrea.com/blog/archives/383#comments</comments>
		<pubDate>Fri, 26 Aug 2005 11:01:00 +0000</pubDate>
		<dc:creator>shuichi</dc:creator>
				<category><![CDATA[その他]]></category>
		<category><![CDATA[EmEditor]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[プログラミング]]></category>

		<guid isPermaLink="false">http://sks.s201.xrea.com/blog/archives/383</guid>
		<description><![CDATA[EmEditorのPHP構文ファイル(PHP 5.3)が最新版です。
EmEditor用のPHP構文ファイルを生成するスクリプトをPHPで作ってみました(php.esy generator)。
このスクリプトを実行すると [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://sks.s201.xrea.com/blog/archives/591">EmEditorのPHP構文ファイル(PHP 5.3)</a>が最新版です。</p>
<p>EmEditor用のPHP構文ファイルを生成するスクリプトをPHPで作ってみました(<del>php.esy generator</del>)。</p>
<p>このスクリプトを実行すると、そのスクリプトが動いているPHP環境から定義されている関数や定数を取得して構文ファイルを生成します。つまり、そのPHPの環境にあった構文ファイルが生成されます。ただし、演算子やロードされていない拡張の関数、クラスのメソッドなどいくらか生成しないキーワードもあります。そのあたりは適当にいじってみてください。</p>
<p>PHPでは変数名は大文字小文字を区別し関数名は区別しないことになっていますが、構文ファイル内では全て大文字小文字を区別する設定にしています。また、正規表現を使うと重くなるので使っていません(そのため間違った色分けがされることがあります)。<del>おまけとしてこのサーバのPHP5で生成した構文ファイルをアーカイブスに置いておきます(php.esy)。</del></p>
]]></content:encoded>
			<wfw:commentRss>http://sks.s201.xrea.com/blog/archives/383/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>phpCodeBeautifier &#8211; PHPのソースコードを整形してくれるソフト</title>
		<link>http://sks.s201.xrea.com/blog/archives/386</link>
		<comments>http://sks.s201.xrea.com/blog/archives/386#comments</comments>
		<pubDate>Thu, 18 Aug 2005 13:52:42 +0000</pubDate>
		<dc:creator>shuichi</dc:creator>
				<category><![CDATA[その他]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[ソフトウェア]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[小技]]></category>

		<guid isPermaLink="false">http://sks.s201.xrea.com/blog/archives/386</guid>
		<description><![CDATA[phpCodeBeautifierとはPHPのソースコードを整形してくれるソフトです。人それぞれコーディングスタイルは微妙に異なっているので、このソースコードは見づらいなぁと思ったらコレで整形してみるといいかもしれません [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.waterproof.fr/products/phpCodeBeautifier/">phpCodeBeautifier</a>とはPHPのソースコードを整形してくれるソフトです。人それぞれコーディングスタイルは微妙に異なっているので、このソースコードは見づらいなぁと思ったらコレで整形してみるといいかもしれません。コマンド版とGUI版があります。</p>
]]></content:encoded>
			<wfw:commentRss>http://sks.s201.xrea.com/blog/archives/386/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SimpleXMLで特定の名前空間に属する子要素を取得する</title>
		<link>http://sks.s201.xrea.com/blog/archives/398</link>
		<comments>http://sks.s201.xrea.com/blog/archives/398#comments</comments>
		<pubDate>Wed, 03 Aug 2005 13:04:01 +0000</pubDate>
		<dc:creator>shuichi</dc:creator>
				<category><![CDATA[その他]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[小技]]></category>

		<guid isPermaLink="false">http://sks.s201.xrea.com/blog/archives/398</guid>
		<description><![CDATA[日本PHPユーザー会のメーリングリストの過去ログを読んでいるとSimpleXMLで特定の名前空間に属する要素を取得する方法について書かれていました。これによるとsimplexml_elementのchildrenメソッド [...]]]></description>
			<content:encoded><![CDATA[<p>日本PHPユーザー会のメーリングリストの過去ログを読んでいると<a href="http://ns1.php.gr.jp/pipermail/php-users/2005-June/026307.html">SimpleXMLで特定の名前空間に属する要素を取得する方法</a>について書かれていました。これによるとsimplexml_elementのchildrenメソッドに名前空間URIを引数として渡すと、そのsimplexml_element下の特定の名前空間に属する子要素を取得できるようです。PHPの日本語版マニュアルでは</p>
<pre>simplexml_element-&gt;children ( void )</pre>
<p>と書いてありますが、英語版マニュアルにはちゃんと</p>
<pre>simplexml_element-&gt;children ( [string nsprefix] )</pre>
<p>と書いてありました。また、その下のUser Contributed Notesにもこのことについて書かれていますね。日本語版マニュアルばかり見ていたせいで、こんな方法があるとは気づきませんでした(これからは英語版マニュアルを優先的に見ることにしようかな…)。ちなみにPHP 5.0.4で試してみたところちゃんと動作しました。目的の要素にアクセスするのがちょっと面倒なような気もしますが、PHP 5.0.xの時点でちゃんと動作するのはこの方法しかないような気がするので、しばらくはこの方法を使ってみます。</p>
<p>ちなみに、PHP 5.1では</p>
<pre>simplexml_element-&gt;registerXPathNamespace( &#36;prefix&#44; &#36;namespaceURI )</pre>
<p>というメソッドが追加される予定で、これによりXPathを用いることでよりスマートに目的の要素にアクセスできるようになると思います。早くPHP 5.1の正式版リリースされませんかね。</p>
]]></content:encoded>
			<wfw:commentRss>http://sks.s201.xrea.com/blog/archives/398/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP 5.0.0 Released!</title>
		<link>http://sks.s201.xrea.com/blog/archives/165</link>
		<comments>http://sks.s201.xrea.com/blog/archives/165#comments</comments>
		<pubDate>Wed, 14 Jul 2004 09:25:12 +0000</pubDate>
		<dc:creator>shuichi</dc:creator>
				<category><![CDATA[その他]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[プログラミング]]></category>

		<guid isPermaLink="false">http://sks.s201.xrea.com/blog/archives/165</guid>
		<description><![CDATA[PHP5がやっと出ました。長かったです。しかし、まだバグが結構潜んでいると思うので、本格的に使うのはもうちょっと後にして、今は色々試しながら勉強していきたいと思っています。
]]></description>
			<content:encoded><![CDATA[<p>PHP5がやっと出ました。長かったです。しかし、まだバグが結構潜んでいると思うので、本格的に使うのはもうちょっと後にして、今は色々試しながら勉強していきたいと思っています。</p>
]]></content:encoded>
			<wfw:commentRss>http://sks.s201.xrea.com/blog/archives/165/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP5 RC3</title>
		<link>http://sks.s201.xrea.com/blog/archives/141</link>
		<comments>http://sks.s201.xrea.com/blog/archives/141#comments</comments>
		<pubDate>Wed, 09 Jun 2004 06:18:00 +0000</pubDate>
		<dc:creator>shuichi</dc:creator>
				<category><![CDATA[その他]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[プログラミング]]></category>

		<guid isPermaLink="false">http://sks.s201.xrea.com/blog/archives/141</guid>
		<description><![CDATA[
PHP5 RC3がリリースされました。やっとここまできました。www.php.netの記事によるとThe third (and hopefully final) Release Candidate of PHP 5との [...]]]></description>
			<content:encoded><![CDATA[<p>
PHP5 RC3がリリースされました。やっとここまできました。www.php.netの記事によると<q cite="http://www.php.net">The third (and hopefully final) Release Candidate of PHP 5</q>とのことなので、うまくいけば次が正式版ということになります。今までのことがあるので、いつ正式版がリリースされるのかわかりませんが、長くても8月までにはリリースしてほしいです。あせって速く出しちゃって危ないバグが発見されるということは避けてもらいたいので…。PHP4の時はどうだったのか知りませんが、おそらく5.1-5.2あたりで安定してくると思うので、その頃に使いはじめたいと思っています。</p>
]]></content:encoded>
			<wfw:commentRss>http://sks.s201.xrea.com/blog/archives/141/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP5の正式版はいつ?</title>
		<link>http://sks.s201.xrea.com/blog/archives/102</link>
		<comments>http://sks.s201.xrea.com/blog/archives/102#comments</comments>
		<pubDate>Tue, 25 May 2004 08:17:24 +0000</pubDate>
		<dc:creator>shuichi</dc:creator>
				<category><![CDATA[その他]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[プログラミング]]></category>

		<guid isPermaLink="false">http://sks.s201.xrea.com/blog/archives/102</guid>
		<description><![CDATA[
ずっと前からPHP5の正式版のリリースを待っているのですが、いまだにリリースされません。初めのころは去年の夏ごろに出るっていう話だったのですが、どんどんズレ込んでしまってこんな結果です。


今一番使いたい機能はSim [...]]]></description>
			<content:encoded><![CDATA[<p>
ずっと前からPHP5の正式版のリリースを待っているのですが、いまだにリリースされません。初めのころは去年の夏ごろに出るっていう話だったのですが、どんどんズレ込んでしまってこんな結果です。
</p>
<p>
今一番使いたい機能はSimpleXMLで、これを使うとXMLのパース部分がかなりすっきりするみたいですね。DOMXMLと似ていますが、各要素にアクセスする方法が非常に分かりやすいです。今まではXMLをパースする時はSAXパーサみたいに逐次データを読み込んで、解析していくのですが、そのコードを組むのがめんどくさい…。
</p>
<p>
PHP5もようやくRC2までリリースされましたから、年内には完成すると思います。一番心配なのはリリースされたがバグばっかりっていうパターンは勘弁してもらいたいです。ここのサーバにインストールされるのはいつ頃になるのやら。</p>
]]></content:encoded>
			<wfw:commentRss>http://sks.s201.xrea.com/blog/archives/102/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
