<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2japanesefull.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Shin x blog</title>
	
	<link>http://www.1x1.jp/blog</link>
	<description>PHPでWEB+DBシステムの開発をやっています。</description>
	<lastBuildDate>Mon, 01 Feb 2010 23:55:59 +0000</lastBuildDate>
	
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/jp/shinxblog" /><feedburner:info uri="jp/shinxblog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>PHP基礎文法最速マスター</title>
		<link>http://feedproxy.google.com/~r/jp/shinxblog/~3/d_vi5bPDeyw/php-basic-syntax.html</link>
		<comments>http://www.1x1.jp/blog/2010/01/php-basic-syntax.html#comments</comments>
		<pubDate>Wed, 27 Jan 2010 00:25:07 +0000</pubDate>
		<dc:creator>shinbara</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.1x1.jp/blog/?p=1696</guid>
		<description><![CDATA[
PerlとRubyの文法一覧がとても良くまとまっていたので、便乗してPHPでもやってみました。

Perl基礎文法最速マスター - Perl入門〜サンプルコードによるPerl入門〜
Route 477 - Ruby基礎文法最速マスター

他の言語をある程度知っている人はこれを読めばPHPの文法を何となく理解できると思います。
間違い、不足等々あれば教えて下さいm(_ _)m
バージョン
PHP5.3系がリリースされていますが、ここではPHP5.2系を対象としています。
1.基礎
コードブロック
PHPコードは「&#60;?php」という開始タグから始まります。終了タグは「?&#62;」です。HTMLにPHPコードを埋める際は終了タグを使いますが、ライブラリのようにPHPコードのみを記述する際は終了タグを省くことが慣例となっています。
終了タグを省く理由について id:Kiske さんに解説頂いています。ありがとうございます。PHP基礎文法最速マスターの補足 - Absolute Playing!
PLAIN TEXT
PHP:




&#60;?php hoge&#40;&#41;; ?&#62;


&#60;?php


$i = 1;


hoge&#40;$i&#41;;


?&#62; 






PLAIN TEXT
PHP:




&#60;?php


hoge&#40;&#41;; 






print文
print/echoを使います。
PLAIN TEXT
PHP:




&#60;?php


print "Hello World!";


echo "Hello World!"; 






デバッグにはvar_dump()をよく使います。var_dump()では変数の内容が出力されます。
PLAIN TEXT
PHP:




&#60;?php


$array = array&#40;1,2,3&#41;;


var_dump&#40;$array&#41;;


&#160;


array&#40;3&#41; &#123;


&#160; &#91;0&#93;=&#62;


&#160; int&#40;1&#41;


&#160; &#91;1&#93;=&#62;


&#160; int&#40;2&#41;


&#160; &#91;2&#93;=&#62;


&#160; int&#40;3&#41;


&#125; 






コメント
一行コメント
PLAIN TEXT
PHP:




// コメント


# コメント 






複数行コメント
PLAIN TEXT
PHP:




/*


コメント


コメント


*/ 






変数の宣言
変数の宣言です。
PLAIN TEXT
PHP:




$a = 'string';


$i = 1; 






スクリプトの実行
コマンドラインでPHPファイルを実行します。

$ php hoge.php

PHPコードを直接記述することもできます。&#60;?php ?&#62;は不要です。

$ php -r "var_dump('a');"

出力結果をファイルに書き出すにはリダイレクトを使います。

$ [...]]]></description>
			<content:encoded><![CDATA[
<p>PerlとRubyの文法一覧がとても良くまとまっていたので、便乗してPHPでもやってみました。</p>
<ul>
<li><a href="http://d.hatena.ne.jp/perlcodesample/20091226/1264257759" target="_blank">Perl基礎文法最速マスター - Perl入門〜サンプルコードによるPerl入門〜</a></li>
<li><a href="http://route477.net/d/?date=20100125" target="_blank">Route 477 - Ruby基礎文法最速マスター</a></li>
</ul>
<p>他の言語をある程度知っている人はこれを読めばPHPの文法を何となく理解できると思います。</p>
<p>間違い、不足等々あれば教えて下さいm(_ _)m</p>
<h4>バージョン</h4>
<p>PHP5.3系がリリースされていますが、ここではPHP5.2系を対象としています。</p>
<h3>1.基礎</h3>
<h4>コードブロック</h4>
<p>PHPコードは「&lt;?php」という開始タグから始まります。終了タグは「?&gt;」です。HTMLにPHPコードを埋める際は終了タグを使いますが、ライブラリのようにPHPコードのみを記述する際は終了タグを省くことが慣例となっています。</p>
<p><strong>終了タグを省く理由について id:Kiske さんに解説頂いています。ありがとうございます。</strong><br /><a href="http://d.hatena.ne.jp/Kiske/20100128/1264643384" target="_blank">PHP基礎文法最速マスターの補足 - Absolute Playing!</a></p>
<div class="igBar"><span id="lphp-48"><a href="#" onclick="javascript:showPlainTxt('php-48'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">PHP:</span>
<div id="php-48">
<div class="php">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">&lt;?php</span> hoge<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span>; <span style="color:#000000; font-weight:bold;">?&gt;</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">&lt;?php</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$i</span> = <span style="color:#CC66CC;color:#800000;">1</span>;</div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">hoge<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$i</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">?&gt;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<div class="igBar"><span id="lphp-49"><a href="#" onclick="javascript:showPlainTxt('php-49'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">PHP:</span>
<div id="php-49">
<div class="php">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">&lt;?php</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">hoge<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<h4>print文</h4>
<p>print/echoを使います。</p>
<div class="igBar"><span id="lphp-50"><a href="#" onclick="javascript:showPlainTxt('php-50'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">PHP:</span>
<div id="php-50">
<div class="php">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">&lt;?php</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><a href="http://www.php.net/print"><span style="color:#000066;">print</span></a> <span style="color:#FF0000;">"Hello World!"</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><a href="http://www.php.net/echo"><span style="color:#000066;">echo</span></a> <span style="color:#FF0000;">"Hello World!"</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>デバッグにはvar_dump()をよく使います。var_dump()では変数の内容が出力されます。</p>
<div class="igBar"><span id="lphp-51"><a href="#" onclick="javascript:showPlainTxt('php-51'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">PHP:</span>
<div id="php-51">
<div class="php">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">&lt;?php</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$array</span> = <a href="http://www.php.net/array"><span style="color:#000066;">array</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC66CC;color:#800000;">1</span>,<span style="color:#CC66CC;color:#800000;">2</span>,<span style="color:#CC66CC;color:#800000;">3</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><a href="http://www.php.net/var_dump"><span style="color:#000066;">var_dump</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$array</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><a href="http://www.php.net/array"><span style="color:#000066;">array</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC66CC;color:#800000;">3</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#CC66CC;color:#800000;">0</span><span style="color:#006600; font-weight:bold;">&#93;</span>=&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; int<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC66CC;color:#800000;">1</span><span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#CC66CC;color:#800000;">1</span><span style="color:#006600; font-weight:bold;">&#93;</span>=&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; int<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC66CC;color:#800000;">2</span><span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#CC66CC;color:#800000;">2</span><span style="color:#006600; font-weight:bold;">&#93;</span>=&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; int<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC66CC;color:#800000;">3</span><span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#125;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<h4>コメント</h4>
<p>一行コメント</p>
<div class="igBar"><span id="lphp-52"><a href="#" onclick="javascript:showPlainTxt('php-52'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">PHP:</span>
<div id="php-52">
<div class="php">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// コメント</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#008000; font-style:italic;"># コメント </span></div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>複数行コメント</p>
<div class="igBar"><span id="lphp-53"><a href="#" onclick="javascript:showPlainTxt('php-53'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">PHP:</span>
<div id="php-53">
<div class="php">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#008000;">/*</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#008000;">コメント</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#008000;">コメント</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#008000;">*/</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<h4>変数の宣言</h4>
<p>変数の宣言です。</p>
<div class="igBar"><span id="lphp-54"><a href="#" onclick="javascript:showPlainTxt('php-54'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">PHP:</span>
<div id="php-54">
<div class="php">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$a</span> = <span style="color:#FF0000;">'string'</span>;</div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$i</span> = <span style="color:#CC66CC;color:#800000;">1</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<h4>スクリプトの実行</h4>
<p>コマンドラインでPHPファイルを実行します。</p>
<pre class="code">
$ php hoge.php
</pre>
<p>PHPコードを直接記述することもできます。&lt;?php ?&gt;は不要です。</p>
<pre class="code">
$ php -r "var_dump('a');"
</pre>
<p>出力結果をファイルに書き出すにはリダイレクトを使います。</p>
<pre class="code">
$ php hoge.php > out
</pre>
<h4>スクリプトの文法チェック</h4>
<p>phpコマンドで文法がチェックできます。</p>
<pre class="code">
$ php -l hoge.php
</pre>
<h3>2. 数値</h3>
<h4>数値の表現</h4>
<p>数値には整数、浮動小数点があります。</p>
<div class="igBar"><span id="lphp-55"><a href="#" onclick="javascript:showPlainTxt('php-55'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">PHP:</span>
<div id="php-55">
<div class="php">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">&lt;?php</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$int</span> = <span style="color:#CC66CC;color:#800000;">100</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$float</span> = <span style="color:#CC66CC;color:#800000;">100</span>.<span style="color:#CC66CC;color:#800000;">123</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<h4>四則演算</h4>
<div class="igBar"><span id="lphp-56"><a href="#" onclick="javascript:showPlainTxt('php-56'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">PHP:</span>
<div id="php-56">
<div class="php">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">&lt;?php</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$i</span> = <span style="color:#CC66CC;color:#800000;">1</span> + <span style="color:#CC66CC;color:#800000;">1</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$i</span> = <span style="color:#CC66CC;color:#800000;">1</span> - <span style="color:#CC66CC;color:#800000;">1</span>;</div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$i</span> = <span style="color:#CC66CC;color:#800000;">1</span> * <span style="color:#CC66CC;color:#800000;">1</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$i</span> = <span style="color:#CC66CC;color:#800000;">1</span> / <span style="color:#CC66CC;color:#800000;">2</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>余りと商。商を求めるには普通の除算を行った後にintval関数で整数部を取り出します。</p>
<div class="igBar"><span id="lphp-57"><a href="#" onclick="javascript:showPlainTxt('php-57'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">PHP:</span>
<div id="php-57">
<div class="php">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">&lt;?php</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$div</span> = <a href="http://www.php.net/intval"><span style="color:#000066;">intval</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC66CC;color:#800000;">3</span> / <span style="color:#CC66CC;color:#800000;">2</span><span style="color:#006600; font-weight:bold;">&#41;</span>; <span style="color:#FF9933; font-style:italic;">// 商</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$mod</span> = <span style="color:#CC66CC;color:#800000;">3</span> % <span style="color:#CC66CC;color:#800000;">2</span>; <span style="color:#FF9933; font-style:italic;">// 余り </span></div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<h4>インクリメントとデクリメント</h4>
<div class="igBar"><span id="lphp-58"><a href="#" onclick="javascript:showPlainTxt('php-58'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">PHP:</span>
<div id="php-58">
<div class="php">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">&lt;?php</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$i</span>++;&nbsp; <span style="color:#FF9933; font-style:italic;">// インクリメント</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$i</span>--;&nbsp; &nbsp;<span style="color:#FF9933; font-style:italic;">// デクリメント </span></div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<h3>3. 文字列</h3>
<h4>文字列表現</h4>
<p>文字列はシングルクォートかダブルクォートで囲みます。ダブルクォートの中では\t(タブ)や\n(改行)などの特殊文字を利用することができます。またダブルクォートで囲まれた文字列の中では変数展開することができます。</p>
<div class="igBar"><span id="lphp-59"><a href="#" onclick="javascript:showPlainTxt('php-59'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">PHP:</span>
<div id="php-59">
<div class="php">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">&lt;?php</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$str1</span> = <span style="color:#FF0000;">"abc<span style="color:#000099; font-weight:bold;">\t</span>cde"</span>; <span style="color:#FF9933; font-style:italic;">// abc&nbsp; cde（\tがタブ[0x09]）</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$str2</span> = <span style="color:#FF0000;">'abc<span style="color:#000099; font-weight:bold;">\t</span>cde'</span>; <span style="color:#FF9933; font-style:italic;">// abc\tcde（\tが文字列）</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$str3</span> = <span style="color:#FF0000;">"$str1 100"</span>&nbsp; <span style="color:#FF9933; font-style:italic;">// abc&nbsp; cde 100 //$str1が展開される</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$str4</span> = <span style="color:#FF0000;">"{$str1}100"</span>&nbsp; <span style="color:#FF9933; font-style:italic;">// 変数名に文字列が繋がる時は{}で囲む </span></div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<h4>文字列操作</h4>
<div class="igBar"><span id="lphp-60"><a href="#" onclick="javascript:showPlainTxt('php-60'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">PHP:</span>
<div id="php-60">
<div class="php">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">&lt;?php</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// 結合</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$join1</span> = <span style="color:#FF0000;">'aaa'</span> . <span style="color:#FF0000;">'bbb'</span>;</div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$join2</span> = <a href="http://www.php.net/implode"><span style="color:#000066;">implode</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#FF0000;">','</span>, <a href="http://www.php.net/array"><span style="color:#000066;">array</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#FF0000;">'aaa'</span>, <span style="color:#FF0000;">'bbb'</span>, <span style="color:#FF0000;">'ccc'</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// 分割</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$split</span> = <a href="http://www.php.net/explode"><span style="color:#000066;">explode</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#FF0000;">','</span>, <span style="color:#FF0000;">'aaa,bbb,ccc'</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// 長さ</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$length</span> = <a href="http://www.php.net/strlen"><span style="color:#000066;">strlen</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#FF0000;">'abcdef'</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// 長さ（マルチバイト）</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// 内部エンコーディングの設定が必要</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// mb_internal_encoding('UTF-8');&nbsp; </span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$mb_length</span> = <a href="http://www.php.net/mb_strlen"><span style="color:#000066;">mb_strlen</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#FF0000;">'あいうえお'</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// 切り出し</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$substr</span> = <a href="http://www.php.net/substr"><span style="color:#000066;">substr</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#FF0000;">'abcd'</span>, <span style="color:#CC66CC;color:#800000;">0</span>, <span style="color:#CC66CC;color:#800000;">2</span><span style="color:#006600; font-weight:bold;">&#41;</span>; <span style="color:#FF9933; font-style:italic;">// ab</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// 検索</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$index</span> = <a href="http://www.php.net/strpos"><span style="color:#000066;">strpos</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#FF0000;">'abcd'</span>, <span style="color:#FF0000;">'bc'</span><span style="color:#006600; font-weight:bold;">&#41;</span>; <span style="color:#FF9933; font-style:italic;">// 見つかったらその位置（先頭が0）、見つからなかったらfalseが返る </span></div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<h3>4. 配列、連想配列</h3>
<p>PHPには連想配列しかありません。配列はキーが数値の連想配列として表現されます。また順序を持っています。</p>
<div class="igBar"><span id="lphp-61"><a href="#" onclick="javascript:showPlainTxt('php-61'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">PHP:</span>
<div id="php-61">
<div class="php">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">&lt;?php</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$array1</span> = <a href="http://www.php.net/array"><span style="color:#000066;">array</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC66CC;color:#800000;">1</span>, <span style="color:#CC66CC;color:#800000;">2</span>, <span style="color:#CC66CC;color:#800000;">3</span><span style="color:#006600; font-weight:bold;">&#41;</span>; <span style="color:#FF9933; font-style:italic;">// 配列（キーが0から始まる連想配列）</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$array2</span> = <a href="http://www.php.net/array"><span style="color:#000066;">array</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#FF0000;">'a'</span> =&gt; <span style="color:#CC66CC;color:#800000;">1</span>,&nbsp; <span style="color:#FF0000;">'b'</span> =&gt; <span style="color:#CC66CC;color:#800000;">2</span>, <span style="color:#FF0000;">'c'</span> =&gt; <span style="color:#CC66CC;color:#800000;">3</span><span style="color:#006600; font-weight:bold;">&#41;</span>; <span style="color:#FF9933; font-style:italic;">// 連想配列</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$array3</span> = <a href="http://www.php.net/array"><span style="color:#000066;">array</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC66CC;color:#800000;">1</span>, <span style="color:#FF0000;">'a'</span> =&gt; <span style="color:#CC66CC;color:#800000;">1</span>, <span style="color:#CC66CC;color:#800000;">2</span><span style="color:#006600; font-weight:bold;">&#41;</span>; <span style="color:#FF9933; font-style:italic;">// 混在もok </span></div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>要素の参照と代入</p>
<div class="igBar"><span id="lphp-62"><a href="#" onclick="javascript:showPlainTxt('php-62'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">PHP:</span>
<div id="php-62">
<div class="php">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">&lt;?php</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$i</span> = <span style="color:#0000FF;">$array1</span><span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#CC66CC;color:#800000;">0</span><span style="color:#006600; font-weight:bold;">&#93;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$s</span> = <span style="color:#0000FF;">$array2</span><span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#FF0000;">'a'</span><span style="color:#006600; font-weight:bold;">&#93;</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<div class="igBar"><span id="lphp-63"><a href="#" onclick="javascript:showPlainTxt('php-63'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">PHP:</span>
<div id="php-63">
<div class="php">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">&lt;?php</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$array1</span><span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#CC66CC;color:#800000;">3</span><span style="color:#006600; font-weight:bold;">&#93;</span> = <span style="color:#CC66CC;color:#800000;">1</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$array2</span><span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#FF0000;">'z'</span><span style="color:#006600; font-weight:bold;">&#93;</span> = <span style="color:#FF0000;">'zzz'</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>要素の個数</p>
<div class="igBar"><span id="lphp-64"><a href="#" onclick="javascript:showPlainTxt('php-64'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">PHP:</span>
<div id="php-64">
<div class="php">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">&lt;?php</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$len</span> = <a href="http://www.php.net/count"><span style="color:#000066;">count</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$array1</span><span style="color:#006600; font-weight:bold;">&#41;</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<h4>配列の操作</h4>
<div class="igBar"><span id="lphp-65"><a href="#" onclick="javascript:showPlainTxt('php-65'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">PHP:</span>
<div id="php-65">
<div class="php">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">&lt;?php</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$array</span> = <a href="http://www.php.net/array"><span style="color:#000066;">array</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC66CC;color:#800000;">1</span>, <span style="color:#CC66CC;color:#800000;">2</span>, <span style="color:#CC66CC;color:#800000;">3</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// 先頭を取り出す</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$first</span> = <a href="http://www.php.net/array_shift"><span style="color:#000066;">array_shift</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$array</span><span style="color:#006600; font-weight:bold;">&#41;</span>; <span style="color:#FF9933; font-style:italic;">// $first = 1 / $arrayは、(2, 3)</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// 先頭に追加</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><a href="http://www.php.net/array_unshift"><span style="color:#000066;">array_unshift</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$array</span>, <span style="color:#CC66CC;color:#800000;">5</span><span style="color:#006600; font-weight:bold;">&#41;</span>; <span style="color:#FF9933; font-style:italic;">// $arrayは、(5, 2, 3)</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// 末尾を取り出す</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$last</span> = <a href="http://www.php.net/array_pop"><span style="color:#000066;">array_pop</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$array</span><span style="color:#006600; font-weight:bold;">&#41;</span>; <span style="color:#FF9933; font-style:italic;">// $last = 3 / $arrayは、(5, 2)</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// 末尾に追加</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><a href="http://www.php.net/array_push"><span style="color:#000066;">array_push</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$array</span>, <span style="color:#CC66CC;color:#800000;">9</span><span style="color:#006600; font-weight:bold;">&#41;</span>; <span style="color:#FF9933; font-style:italic;">// $arrayは、(5, 2, 9) </span></div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<h4>連想配列に関する関数</h4>
<div class="igBar"><span id="lphp-66"><a href="#" onclick="javascript:showPlainTxt('php-66'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">PHP:</span>
<div id="php-66">
<div class="php">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">&lt;?php</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// キーの取得</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$keys</span> = <a href="http://www.php.net/array_keys"><span style="color:#000066;">array_keys</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$array</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// 値の取得</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$values</span> = <a href="http://www.php.net/array_values"><span style="color:#000066;">array_values</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$array</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// キーの存在確認</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$boolean</span> = <a href="http://www.php.net/array_key_exists"><span style="color:#000066;">array_key_exists</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#FF0000;">'key'</span>, <span style="color:#0000FF;">$array</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// キーの削除</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><a href="http://www.php.net/unset"><span style="color:#000066;">unset</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$array</span><span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#FF0000;">'key'</span><span style="color:#006600; font-weight:bold;">&#93;</span><span style="color:#006600; font-weight:bold;">&#41;</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<h3>6. 制御文</h3>
<h4>if文</h4>
<div class="igBar"><span id="lphp-67"><a href="#" onclick="javascript:showPlainTxt('php-67'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">PHP:</span>
<div id="php-67">
<div class="php">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">&lt;?php</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#616100;">if</span> <span style="color:#006600; font-weight:bold;">&#40;</span>条件<span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#125;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>HTML内で記載する際は以下のような記法も用いられます。</p>
<div class="igBar"><span id="lphp-68"><a href="#" onclick="javascript:showPlainTxt('php-68'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">PHP:</span>
<div id="php-68">
<div class="php">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">&lt;?php</span> <span style="color:#616100;">if</span> <span style="color:#006600; font-weight:bold;">&#40;</span>条件<span style="color:#006600; font-weight:bold;">&#41;</span>: <span style="color:#000000; font-weight:bold;">?&gt;</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &lt;span&gt;hoge&lt;/span&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">&lt;?php</span> <span style="color:#616100;">endif</span>; <span style="color:#000000; font-weight:bold;">?&gt;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<h4>if 〜 else文</h4>
<div class="igBar"><span id="lphp-69"><a href="#" onclick="javascript:showPlainTxt('php-69'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">PHP:</span>
<div id="php-69">
<div class="php">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">&lt;?php</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#616100;">if</span> <span style="color:#006600; font-weight:bold;">&#40;</span>条件<span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#125;</span> <span style="color:#616100;">else</span> <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#125;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>HTML内で記載する際は以下のような記法も用いられます。</p>
<div class="igBar"><span id="lphp-70"><a href="#" onclick="javascript:showPlainTxt('php-70'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">PHP:</span>
<div id="php-70">
<div class="php">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">&lt;?php</span> <span style="color:#616100;">if</span> <span style="color:#006600; font-weight:bold;">&#40;</span>条件<span style="color:#006600; font-weight:bold;">&#41;</span>: <span style="color:#000000; font-weight:bold;">?&gt;</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &lt;span&gt;hoge&lt;/span&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">&lt;?php</span> <span style="color:#616100;">else</span>: <span style="color:#000000; font-weight:bold;">?&gt;</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &lt;span&gt;foo&lt;/span&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">&lt;?php</span> <span style="color:#616100;">endif</span>; <span style="color:#000000; font-weight:bold;">?&gt;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<h4>if 〜 else if 文</h4>
<p>elseif or else ifが可。</p>
<div class="igBar"><span id="lphp-71"><a href="#" onclick="javascript:showPlainTxt('php-71'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">PHP:</span>
<div id="php-71">
<div class="php">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">&lt;?php</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#616100;">if</span> <span style="color:#006600; font-weight:bold;">&#40;</span>条件<span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#125;</span> <span style="color:#616100;">else</span> <span style="color:#616100;">if</span> <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#125;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>HTML内で記載する際は以下のような記法も用いられます。</p>
<div class="igBar"><span id="lphp-72"><a href="#" onclick="javascript:showPlainTxt('php-72'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">PHP:</span>
<div id="php-72">
<div class="php">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">&lt;?php</span> <span style="color:#616100;">if</span> <span style="color:#006600; font-weight:bold;">&#40;</span>条件<span style="color:#006600; font-weight:bold;">&#41;</span>: <span style="color:#000000; font-weight:bold;">?&gt;</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &lt;span&gt;hoge&lt;/span&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">&lt;?php</span> <span style="color:#616100;">elseif</span> <span style="color:#006600; font-weight:bold;">&#40;</span>条件<span style="color:#006600; font-weight:bold;">&#41;</span>: <span style="color:#000000; font-weight:bold;">?&gt;</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &lt;span&gt;foo&lt;/span&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">&lt;?php</span> <span style="color:#616100;">endif</span>; <span style="color:#000000; font-weight:bold;">?&gt;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<h4>while文</h4>
<div class="igBar"><span id="lphp-73"><a href="#" onclick="javascript:showPlainTxt('php-73'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">PHP:</span>
<div id="php-73">
<div class="php">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">&lt;?php</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$i</span> = <span style="color:#CC66CC;color:#800000;">0</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#616100;">while</span> <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$i</span> &lt;<span style="color:#CC66CC;color:#800000;">5</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color:#FF9933; font-style:italic;">// 処理</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color:#0000FF;">$i</span>++;</div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#125;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>HTML内で記載する際は以下のような記法も用いられます。</p>
<div class="igBar"><span id="lphp-74"><a href="#" onclick="javascript:showPlainTxt('php-74'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">PHP:</span>
<div id="php-74">
<div class="php">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">&lt;?php</span> <span style="color:#616100;">while</span> <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$i</span> &lt;<span style="color:#CC66CC;color:#800000;">5</span><span style="color:#006600; font-weight:bold;">&#41;</span>: <span style="color:#000000; font-weight:bold;">?&gt;</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &lt;span&gt;&lt;?php <a href="http://www.php.net/echo"><span style="color:#000066;">echo</span></a> <a href="http://www.php.net/htmlspecialchars"><span style="color:#000066;">htmlspecialchars</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$i</span><span style="color:#006600; font-weight:bold;">&#41;</span>; ?&gt;&lt;/span&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color:#000000; font-weight:bold;">&lt;?php</span> <span style="color:#0000FF;">$i</span>++; <span style="color:#000000; font-weight:bold;">?&gt;</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">&lt;?php</span> <span style="color:#616100;">endwhile</span>; <span style="color:#000000; font-weight:bold;">?&gt;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<h4>for文</h4>
<div class="igBar"><span id="lphp-75"><a href="#" onclick="javascript:showPlainTxt('php-75'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">PHP:</span>
<div id="php-75">
<div class="php">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">&lt;?php</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#616100;">for</span> <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$i</span> = <span style="color:#CC66CC;color:#800000;">0</span> ; <span style="color:#0000FF;">$i</span> &lt;<span style="color:#CC66CC;color:#800000;">5</span> ;<span style="color:#0000FF;">$i</span>++<span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#125;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>HTML内で記載する際は以下のような記法も用いられます。</p>
<div class="igBar"><span id="lphp-76"><a href="#" onclick="javascript:showPlainTxt('php-76'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">PHP:</span>
<div id="php-76">
<div class="php">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">&lt;?php</span> <span style="color:#616100;">for</span> <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$i</span> = <span style="color:#CC66CC;color:#800000;">0</span> ; <span style="color:#0000FF;">$i</span> &lt;<span style="color:#CC66CC;color:#800000;">5</span> ; <span style="color:#0000FF;">$i</span>++<span style="color:#006600; font-weight:bold;">&#41;</span>: <span style="color:#000000; font-weight:bold;">?&gt;</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &lt;span&gt;&lt;?php <a href="http://www.php.net/echo"><span style="color:#000066;">echo</span></a> <a href="http://www.php.net/htmlspecialchars"><span style="color:#000066;">htmlspecialchars</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$i</span><span style="color:#006600; font-weight:bold;">&#41;</span>; ?&gt;&lt;/span&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">&lt;?php</span> endfor; <span style="color:#000000; font-weight:bold;">?&gt;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<h4>foreach文</h4>
<p>連想配列の各要素を処理できます。</p>
<div class="igBar"><span id="lphp-77"><a href="#" onclick="javascript:showPlainTxt('php-77'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">PHP:</span>
<div id="php-77">
<div class="php">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">&lt;?php</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#616100;">foreach</span> <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$array</span> <span style="color:#616100;">as</span> <span style="color:#0000FF;">$v</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color:#FF9933; font-style:italic;">// $v が要素の値</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#616100;">foreach</span> <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$array</span> <span style="color:#616100;">as</span> <span style="color:#0000FF;">$k</span> =&gt; <span style="color:#0000FF;">$v</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color:#FF9933; font-style:italic;">// $k が要素のキー、$v が要素の値</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#125;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>HTML内で記載する際は以下のような記法も用いられます。</p>
<div class="igBar"><span id="lphp-78"><a href="#" onclick="javascript:showPlainTxt('php-78'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">PHP:</span>
<div id="php-78">
<div class="php">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">&lt;?php</span> <span style="color:#616100;">foreach</span> <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$array</span> <span style="color:#616100;">as</span> <span style="color:#0000FF;">$v</span><span style="color:#006600; font-weight:bold;">&#41;</span>: <span style="color:#000000; font-weight:bold;">?&gt;</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &lt;span&gt;&lt;?php <a href="http://www.php.net/echo"><span style="color:#000066;">echo</span></a> <a href="http://www.php.net/htmlspecialchars"><span style="color:#000066;">htmlspecialchars</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$v</span><span style="color:#006600; font-weight:bold;">&#41;</span>; ?&gt;&lt;/span&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">&lt;?php</span> endforeach; <span style="color:#000000; font-weight:bold;">?&gt;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<h3>7. サブルーチン（関数）</h3>
<p>PHPには関数があります。戻り値を返却するにはreturnを使用します。</p>
<div class="igBar"><span id="lphp-79"><a href="#" onclick="javascript:showPlainTxt('php-79'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">PHP:</span>
<div id="php-79">
<div class="php">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">&lt;?php</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">function</span> sum<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$v1</span>, <span style="color:#0000FF;">$v2</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color:#616100;">return</span> <span style="color:#0000FF;">$v1</span> + <span style="color:#0000FF;">$v2</span>;</div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$total</span> = sum<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC66CC;color:#800000;">1</span>, <span style="color:#CC66CC;color:#800000;">2</span><span style="color:#006600; font-weight:bold;">&#41;</span>; <span style="color:#FF9933; font-style:italic;">// $total = 3</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// 配列で多値を返すこともできます</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">function</span> get_multi<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$v1</span>, <span style="color:#0000FF;">$v2</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color:#0000FF;">$v1</span> += <span style="color:#CC66CC;color:#800000;">100</span>;</div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color:#0000FF;">$v2</span> += <span style="color:#CC66CC;color:#800000;">200</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color:#616100;">return</span> <a href="http://www.php.net/array"><span style="color:#000066;">array</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$v1</span>, <span style="color:#0000FF;">$v2</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><a href="http://www.php.net/list"><span style="color:#000066;">list</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$ret1</span>, <span style="color:#0000FF;">$ret2</span><span style="color:#006600; font-weight:bold;">&#41;</span> = get_multi<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC66CC;color:#800000;">1</span>, <span style="color:#CC66CC;color:#800000;">2</span><span style="color:#006600; font-weight:bold;">&#41;</span>; <span style="color:#FF9933; font-style:italic;">// $ret1 = 101 / $ret2 = 202 </span></div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<h3>8. ファイル入出力</h3>
<p>ファイル入出力にはいくつかの方法があります。</p>
<h4>fopen関数</h4>
<p>ファイルポインタを使ってファイルの入出力を行います。</p>
<div class="igBar"><span id="lphp-80"><a href="#" onclick="javascript:showPlainTxt('php-80'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">PHP:</span>
<div id="php-80">
<div class="php">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">&lt;?php</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// 読み込み</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$fp</span> = <a href="http://www.php.net/fopen"><span style="color:#000066;">fopen</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#FF0000;">"/path/to/file"</span>, <span style="color:#FF0000;">"r"</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#616100;">if</span> <span style="color:#006600; font-weight:bold;">&#40;</span>!<a href="http://www.php.net/is_resource"><span style="color:#000066;">is_resource</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$fp</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <a href="http://www.php.net/die"><span style="color:#000066;">die</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#FF0000;">"can't open file"</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#616100;">while</span> <span style="color:#006600; font-weight:bold;">&#40;</span>!<a href="http://www.php.net/feof"><span style="color:#000066;">feof</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$fp</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color:#0000FF;">$line</span> = <a href="http://www.php.net/fgets"><span style="color:#000066;">fgets</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$fp</span>, <span style="color:#CC66CC;color:#800000;">4096</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color:#FF9933; font-style:italic;">// 何か処理</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><a href="http://www.php.net/fclose"><span style="color:#000066;">fclose</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$fp</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// 書き込み</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$fp</span> = <a href="http://www.php.net/fopen"><span style="color:#000066;">fopen</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#FF0000;">"/path/to/file"</span>, <span style="color:#FF0000;">"w"</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#616100;">if</span> <span style="color:#006600; font-weight:bold;">&#40;</span>!<a href="http://www.php.net/is_resource"><span style="color:#000066;">is_resource</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$fp</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <a href="http://www.php.net/die"><span style="color:#000066;">die</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#FF0000;">"can't open file"</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><a href="http://www.php.net/fputs"><span style="color:#000066;">fputs</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$fp</span>, <span style="color:#0000FF;">$buff</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><a href="http://www.php.net/fclose"><span style="color:#000066;">fclose</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$fp</span><span style="color:#006600; font-weight:bold;">&#41;</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<h4>file関数</h4>
<p>ファイル全体を読み込んで配列に格納します。</p>
<div class="igBar"><span id="lphp-81"><a href="#" onclick="javascript:showPlainTxt('php-81'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">PHP:</span>
<div id="php-81">
<div class="php">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">&lt;?php</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$list</span> = <a href="http://www.php.net/file"><span style="color:#000066;">file</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#FF0000;">"/path/to/file"</span><span style="color:#006600; font-weight:bold;">&#41;</span>; <span style="color:#FF9933; font-style:italic;">// ファイルの各行を連想配列で取得 </span></div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<h4>file_get_contents関数 / file_put_contents関数</h4>
<p>file_get_contents関数はファイル全体を読み込んで文字列として格納します。file_put_contents関数は変数の値を全てファイルに書き込みます。</p>
<div class="igBar"><span id="lphp-82"><a href="#" onclick="javascript:showPlainTxt('php-82'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">PHP:</span>
<div id="php-82">
<div class="php">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">&lt;?php</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// 読み込み</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$contents</span> = <a href="http://www.php.net/file_get_contents"><span style="color:#000066;">file_get_contents</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#FF0000;">"/path/to/file"</span><span style="color:#006600; font-weight:bold;">&#41;</span>; <span style="color:#FF9933; font-style:italic;">// ファイルの内容を取得</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// 書き込み</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">file_put_contents<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#FF0000;">"/path/to/file"</span>, <span style="color:#0000FF;">$buff</span><span style="color:#006600; font-weight:bold;">&#41;</span>; <span style="color:#FF9933; font-style:italic;">// ファイルに $buff の内容を書き込み </span></div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<h3>知っておいた方が良い文法</h3>
<h4>真偽値</h4>
<p>PHPでは以下の場合、偽と判断されます。</p>
<ul>
<li>boolean の FALSE</li>
<li>integer の 0 (ゼロ)</li>
<li>float の 0.0 (ゼロ)</li>
<li>空の文字列、 および文字列の "0"</li>
<li>要素の数がゼロである 配列</li>
<li>メンバ変数の数がゼロである オブジェクト (PHP 4のみ)</li>
<li>特別な値 NULL (値がセットされていない変数を含む)</li>
<li>空のタグから作成された SimpleXML オブジェクト</li>
</ul>
<h4>==と===</h4>
<p>==/!=といった比較演算子では、数値・文字列の自動変換が行われます。よって意図しない結果をもたらす場合があります。</p>
<div class="igBar"><span id="lphp-83"><a href="#" onclick="javascript:showPlainTxt('php-83'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">PHP:</span>
<div id="php-83">
<div class="php">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">&lt;?php</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><a href="http://www.php.net/var_dump"><span style="color:#000066;">var_dump</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC66CC;color:#800000;">1</span> == <span style="color:#CC66CC;color:#800000;">1</span><span style="color:#006600; font-weight:bold;">&#41;</span>; <span style="color:#FF9933; font-style:italic;">// true</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><a href="http://www.php.net/var_dump"><span style="color:#000066;">var_dump</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC66CC;color:#800000;">1</span> == <span style="color:#FF0000;">'1'</span><span style="color:#006600; font-weight:bold;">&#41;</span>; <span style="color:#FF9933; font-style:italic;">// true</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><a href="http://www.php.net/var_dump"><span style="color:#000066;">var_dump</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC66CC;color:#800000;">0</span> == <span style="color:#FF0000;">'a'</span><span style="color:#006600; font-weight:bold;">&#41;</span>; <span style="color:#FF9933; font-style:italic;">// true</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><a href="http://www.php.net/var_dump"><span style="color:#000066;">var_dump</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC66CC;color:#800000;">100</span> == <span style="color:#FF0000;">'100a'</span><span style="color:#006600; font-weight:bold;">&#41;</span>; <span style="color:#FF9933; font-style:italic;">// true</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><a href="http://www.php.net/var_dump"><span style="color:#000066;">var_dump</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#FF0000;">'+1'</span> == <span style="color:#FF0000;">'1.0'</span><span style="color:#006600; font-weight:bold;">&#41;</span>; <span style="color:#FF9933; font-style:italic;">// true </span></div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>こういった場合、===/!==を使うと変数の型も厳密に比較することができます。</p>
<div class="igBar"><span id="lphp-84"><a href="#" onclick="javascript:showPlainTxt('php-84'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">PHP:</span>
<div id="php-84">
<div class="php">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">&lt;?php</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><a href="http://www.php.net/var_dump"><span style="color:#000066;">var_dump</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC66CC;color:#800000;">1</span> === <span style="color:#CC66CC;color:#800000;">1</span><span style="color:#006600; font-weight:bold;">&#41;</span>; <span style="color:#FF9933; font-style:italic;">// true</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><a href="http://www.php.net/var_dump"><span style="color:#000066;">var_dump</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC66CC;color:#800000;">1</span> === <span style="color:#FF0000;">'1'</span><span style="color:#006600; font-weight:bold;">&#41;</span>; <span style="color:#FF9933; font-style:italic;">// false</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><a href="http://www.php.net/var_dump"><span style="color:#000066;">var_dump</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC66CC;color:#800000;">0</span> === <span style="color:#FF0000;">'0'</span><span style="color:#006600; font-weight:bold;">&#41;</span>; <span style="color:#FF9933; font-style:italic;">// false</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><a href="http://www.php.net/var_dump"><span style="color:#000066;">var_dump</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC66CC;color:#800000;">100</span> === <span style="color:#FF0000;">'100a'</span><span style="color:#006600; font-weight:bold;">&#41;</span>; <span style="color:#FF9933; font-style:italic;">// false</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><a href="http://www.php.net/var_dump"><span style="color:#000066;">var_dump</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#FF0000;">'+1'</span> === <span style="color:#FF0000;">'1.0'</span><span style="color:#006600; font-weight:bold;">&#41;</span>; <span style="color:#FF9933; font-style:italic;">// false </span></div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<h4>変数が定義されているかどうか</h4>
<p>変数が定義されているかどうかを調べるにはisset関数を使用します。定義されている場合はtrueが返ります。ただしisset関数では変数の値がNULLの場合もfalseが返ります。</p>
<div class="igBar"><span id="lphp-85"><a href="#" onclick="javascript:showPlainTxt('php-85'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">PHP:</span>
<div id="php-85">
<div class="php">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">&lt;?php</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><a href="http://www.php.net/isset"><span style="color:#000066;">isset</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$a</span><span style="color:#006600; font-weight:bold;">&#41;</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<h4>コマンドライン引数</h4>
<p>コマンドライン引数を受け取るには$argv変数を使用します。</p>
<div class="igBar"><span id="lphp-86"><a href="#" onclick="javascript:showPlainTxt('php-86'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">PHP:</span>
<div id="php-86">
<div class="php">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">&lt;?php</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><a href="http://www.php.net/var_dump"><span style="color:#000066;">var_dump</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$argv</span><span style="color:#006600; font-weight:bold;">&#41;</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<h4>array_map</h4>
<p>array_map関数を使うと、連想配列の各要素に処理をして新たな連想配列として受け取ることができます。</p>
<div class="igBar"><span id="lphp-87"><a href="#" onclick="javascript:showPlainTxt('php-87'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">PHP:</span>
<div id="php-87">
<div class="php">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">&lt;?php</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$array</span> = <a href="http://www.php.net/array"><span style="color:#000066;">array</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC66CC;color:#800000;">1</span>,<span style="color:#CC66CC;color:#800000;">2</span>,<span style="color:#CC66CC;color:#800000;">3</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$mapped</span> = <a href="http://www.php.net/array_map"><span style="color:#000066;">array_map</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><a href="http://www.php.net/create_function"><span style="color:#000066;">create_function</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#FF0000;">'$v'</span>, <span style="color:#FF0000;">'return $v *= 10;'</span><span style="color:#006600; font-weight:bold;">&#41;</span>, <span style="color:#0000FF;">$array</span><span style="color:#006600; font-weight:bold;">&#41;</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<h4>array_filter</h4>
<p>array_filter関数を使うと、条件に一致した要素のみを新たな連想配列として受け取ることができます。</p>
<div class="igBar"><span id="lphp-88"><a href="#" onclick="javascript:showPlainTxt('php-88'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">PHP:</span>
<div id="php-88">
<div class="php">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">&lt;?php</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$array</span> = <a href="http://www.php.net/array"><span style="color:#000066;">array</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC66CC;color:#800000;">1</span>,<span style="color:#CC66CC;color:#800000;">2</span>,<span style="color:#CC66CC;color:#800000;">3</span>,<span style="color:#CC66CC;color:#800000;">4</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$filtered</span> = <a href="http://www.php.net/array_filter"><span style="color:#000066;">array_filter</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$array</span>, <a href="http://www.php.net/create_function"><span style="color:#000066;">create_function</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#FF0000;">'$v'</span>, <span style="color:#FF0000;">'return ($v&gt; 2);'</span><span style="color:#006600; font-weight:bold;">&#41;</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<h4>複数の変数への代入</h4>
<div class="igBar"><span id="lphp-89"><a href="#" onclick="javascript:showPlainTxt('php-89'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">PHP:</span>
<div id="php-89">
<div class="php">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">&lt;?php</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><a href="http://www.php.net/list"><span style="color:#000066;">list</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$v1</span>, <span style="color:#0000FF;">$v2</span>, <span style="color:#0000FF;">$v3</span><span style="color:#006600; font-weight:bold;">&#41;</span> = <a href="http://www.php.net/array"><span style="color:#000066;">array</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC66CC;color:#800000;">1</span>, <span style="color:#CC66CC;color:#800000;">2</span>, <span style="color:#CC66CC;color:#800000;">3</span><span style="color:#006600; font-weight:bold;">&#41;</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<h4>php.ini</h4>
<p>PHPには設定ファイルがあります。設定に応じて挙動が変わるので注意が必要です。この設定はphp.iniという設定ファイルの他に、httpd.conf、.htaccess、そしてソースコードにて設定が可能です。</p>
<p>設定方法は、項目に応じて変わりますが、ソースコードで設定を行う際はini_set()を使うことが多いです。</p>
<div class="igBar"><span id="lphp-90"><a href="#" onclick="javascript:showPlainTxt('php-90'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">PHP:</span>
<div id="php-90">
<div class="php">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">&lt;?php</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><a href="http://www.php.net/ini_set"><span style="color:#000066;">ini_set</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#FF0000;">'include_path'</span>, <span style="color:#FF0000;">'.:/path/to/libs'</span><span style="color:#006600; font-weight:bold;">&#41;</span>; <span style="color:#FF9933; font-style:italic;">// include_pathに'.:/path/to/libs'を設定する </span></div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>現在の設定は、phpinfo関数もしくはphpコマンドで確認できます。</p>
<div class="igBar"><span id="lphp-91"><a href="#" onclick="javascript:showPlainTxt('php-91'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">PHP:</span>
<div id="php-91">
<div class="php">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">&lt;?php</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><a href="http://www.php.net/phpinfo"><span style="color:#000066;">phpinfo</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<pre class="code">
# 全ての設定値を出力
$ php -i
# grep で絞る
$ php -i | grep include_path
</pre>
<h4>クラス定義</h4>
<p>classでクラスを定義できます。</p>
<div class="igBar"><span id="lphp-92"><a href="#" onclick="javascript:showPlainTxt('php-92'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">PHP:</span>
<div id="php-92">
<div class="php">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">class</span> User <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; protected <span style="color:#0000FF;">$name</span> = <span style="color:#000000; font-weight:bold;">null</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; </div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; public <span style="color:#000000; font-weight:bold;">function</span> __construct<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$name</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#0000FF;">$this</span>-&gt;<span style="color:#006600;">name</span> = <span style="color:#0000FF;">$name</span>;</div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; public <span style="color:#000000; font-weight:bold;">function</span> hello<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <a href="http://www.php.net/printf"><span style="color:#000066;">printf</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#FF0000;">"%s: Hello!<span style="color:#000099; font-weight:bold;">\n</span>"</span>, <span style="color:#0000FF;">$this</span>-&gt;<span style="color:#006600;">name</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$user</span> = <span style="color:#000000; font-weight:bold;">new</span> User<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#FF0000;">'Mike'</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$user</span>-&gt;<span style="color:#006600;">hello</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>継承もできます。単一継承のみ可能です。</p>
<div class="igBar"><span id="lphp-93"><a href="#" onclick="javascript:showPlainTxt('php-93'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">PHP:</span>
<div id="php-93">
<div class="php">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">class</span> MyUser extends User <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#125;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<h4>例外</h4>
<p>throwで例外を投げることができます。try/catchで例外をキャッチします。他の言語にあるfinallyに相当するものはありません。</p>
<div class="igBar"><span id="lphp-94"><a href="#" onclick="javascript:showPlainTxt('php-94'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">PHP:</span>
<div id="php-94">
<div class="php">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">function</span> foo<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; throw <span style="color:#000000; font-weight:bold;">new</span> Exception<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">try <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; foo<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#125;</span> catch <span style="color:#006600; font-weight:bold;">&#40;</span>Exception <span style="color:#0000FF;">$e</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <a href="http://www.php.net/echo"><span style="color:#000066;">echo</span></a> <span style="color:#0000FF;">$e</span>-&gt;<span style="color:#006600;">getTraceAsString</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#125;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<h3>PHP参考資料</h3>
<h4>公式マニュアル</h4>
<p>PHPに関する書籍は多く出版されていますが、やはり一番参考になるのは公式マニュアルです。</p>
<p><a href="http://jp2.php.net/manual/ja/" target="_blank">PHP: PHP マニュアル - Manual</a></p>
<p>公式マニュアルを使う際にちょっとしたTIpsを。</p>
<p>ブラウザで公式マニュアルを開く際は、http://php.net/の後ろに調べた関数名を入力すると直接そのページが開きます。合致するものがなければ類似するキーワードが一番表示され、候補の中から選択することもできます。</p>
<pre class="code">

http://php.net/array
</pre>
<h4>コーディング規約</h4>
<p>コーディング規約にはいくつか流派があるのですが、Zend Frameworkのコーディング規約が参考になるでしょう。</p>
<p><a href="http://framework.zend.com/manual/ja/coding-standard.html" target="_blank">Zend Framework PHP 標準コーディング規約 - Zend Framework Manual</a></p>
<h4>モダンPHP</h4>
<p>PHPにはオブジェクト指向言語としても機能があります。以下の資料が参考になります。</p>
<p><a href="http://d.hatena.ne.jp/sotarok/20091216/1260896485" target="_blank">モダンPHP勉強会を開催しました &#038; 資料 - 肉とご飯と甘いもの @ sotarok</a></p>
<h4>フレームワーク</h4>
<p>PHPを使ったWebシステム開発ではフレームワークを用いることがメジャーになりつつあります。</p>
<p>多くのオープンソースフレームワークがありますが、主要なものは以下です。</p>
<ul>
<li><a href="http://cakephp.jp/" target="_blank">CakePHP</a></li>
<li><a href="http://symfony.jp/" target="_blank">symfony</a></li>
<li><a href="http://framework.zend.com/manual/ja/" target="_blank">Zend Framework</a></li>
<li><a href="http://ethna.jp/" target="_blank">Ethna</a></li>
<li><a href="http://codeigniter.jp/" target="_blank">CodeIgniter</a></li>
</ul>
<p><iframe src="http://rcm-jp.amazon.co.jp/e/cm?lt1=_blank&#038;bc1=000000&#038;IS2=1&#038;bg1=FFFFFF&#038;fc1=000000&#038;lc1=0000FF&#038;t=shinxblog-22&#038;o=9&#038;p=8&#038;l=as1&#038;m=amazon&#038;f=ifr&#038;md=1X69VDGQCMF7Z30FM082&#038;asins=4798119865" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe></p>

<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/jp/shinxblog?a=d_vi5bPDeyw:kxPZKyde_Yw:spdCosxkSQE"><img src="http://feeds.feedburner.com/~ff/jp/shinxblog?d=spdCosxkSQE" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/jp/shinxblog?a=d_vi5bPDeyw:kxPZKyde_Yw:OAQBO0PjnPA"><img src="http://feeds.feedburner.com/~ff/jp/shinxblog?d=OAQBO0PjnPA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/jp/shinxblog/~4/d_vi5bPDeyw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.1x1.jp/blog/2010/01/php-basic-syntax.html/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		<feedburner:origLink>http://www.1x1.jp/blog/2010/01/php-basic-syntax.html</feedburner:origLink></item>
		<item>
		<title>appengine ja night #4とPython Hack-a-thon #3に参加してきました＆LT資料</title>
		<link>http://feedproxy.google.com/~r/jp/shinxblog/~3/lmV54TfyYZE/event_appengine_ja_night_4_python_hack_a_thon_3.html</link>
		<comments>http://www.1x1.jp/blog/2010/01/event_appengine_ja_night_4_python_hack_a_thon_3.html#comments</comments>
		<pubDate>Sun, 24 Jan 2010 13:21:47 +0000</pubDate>
		<dc:creator>shinbara</dc:creator>
				<category><![CDATA[Google App Engine(GAE)]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[event]]></category>

		<guid isPermaLink="false">http://www.1x1.jp/blog/?p=1679</guid>
		<description><![CDATA[
週末にappengine ja night #4とPython Hack-a-thon #3 に参加してきました。



2010年、初勉強会です。
どちらもこれまで参加することの無かったイベントなのですが、こうした場所に参加したくなるのも Google App Engine（GAE）をやり出して興味が広がった効果ですね。
appengine ja night #4ではBT（Beer Talk）もやってきました。
他の方の発表も参加される方の雰囲気も事前には良く分からない状況だったのですが、ほぼ全員の方がはじめましての状況だったので自己紹介も兼ねて話してきました。
いざやってみると、とても良い雰囲気で、突っ込みあり、笑いありですごく話しやすかったです。ありがとうございました。
資料を見てもあまり役に立たない気もしますが、いちおうアップしました。

PHPerがGAEで作ってみた
View more presentations from shin1x1.

以下、雑感を。
appengine ja night #4

会場はリクルートメディアテクノロジーラボさん。会場もキレイだし、スクリーンマルチだし、無線LANもあるしで、至れり尽くせり:-D=> ありがとうございました。
発表を聞くだけでなく、適時突っ込みを入れるスタイル。=> 議論が深まって面白かったです。発表者は大変だと思いますけど:-D


@ashigeru さんプレゼン上手い！資料も分かりやすい。=> プレゼンの勉強になりました:-D
hot.hatebuを作りながら、トランザクション周りは色々思案していたので、なるほどーとうなずくことしきり。
Google App Engineの本、英語だけど買おうかな。


@shin1x1のBT。
アウェイとか言いましたが、すごく話やすかったです。
@gozasoroとhot.hatebuへの反応ありがとうございました！
こんなpostやこんなpostがあったりで、このノリ大好きです:-D


運営のみなさん、ありがとうございました。
次回は来月開催だそうです。みんなやさしい人達だから、興味ある人は参加すると良いですよ。


Python Hack-a-thon #3

会場はオラクルさん。マルチスクリーン、電源あり、無線LANあり、飲み物無料、キレイと、こちらも至れり尽くせり。=> ありがとうございました。
両日共にこんなに素晴らしい会場を無料で提供頂けるのは本当にありがたいことです。
hackathon初参加。
ワークショップはGAE+Facebookにちらっと参加して、あとはもくもく作ってました。
GAE+Facebookは連携して、友人一覧が出せたのでとりあえず満足:-D
その後はTwitterのOAuthを使った検証と新しいサービスの下調べを。
hackathonの時間はあっという間に終わっちゃいました。
PHPでも同じようなイベントをやっても良いかも。（関西でやろうかな。）
お昼やワークショップ、発表を通じて、普段あまり接することのない分野に触れられて刺激的でした。
自主性をかなり求められるイベントなので、少し参加する人を選ぶイベントかも。オラクルさんの環境で作業したいがために参加する手もありますけどね:-D
運営のみなさん、ありがとうございました。

興味が広がると
冒頭でも書きましたが、どちらも初参加のイベントだったので、初めてお会いする人ばかりでした。両イベントとも著名な方も多く参加されていたので、ミーハー気分な楽しみもありました:-D
新しいことをやりだすとRPGで新たな地図を手にしたように、これまで行けなかったところに行ける楽しみがあります。
また勉強会をやりたくなってきました。GAEの勉強会を関西でやってみましょうか。

]]></description>
			<content:encoded><![CDATA[
<p>週末に<a href="http://atnd.org/events/2698" target="_blank">appengine ja night #4</a>と<a href="http://atnd.org/events/2159" target="_blank">Python Hack-a-thon #3 </a>に参加してきました。</p>
<p>
<img src="http://www.1x1.jp/blog/wp-content/uploads/2010/01/gae_logo1.png" alt="" title="gae_logo" style="float: left" width="154" height="133" class="alignright size-full wp-image-1681" /><br />
<img src="http://www.1x1.jp/blog/wp-content/uploads/2009/12/python_logo.png" alt="" title="python_logo" width="152" height="158" class="alignright size-full wp-image-1247" /></p>
<p>2010年、初勉強会です。</p>
<p>どちらもこれまで参加することの無かったイベントなのですが、こうした場所に参加したくなるのも Google App Engine（GAE）をやり出して興味が広がった効果ですね。</p>
<p>appengine ja night #4ではBT（Beer Talk）もやってきました。</p>
<p>他の方の発表も参加される方の雰囲気も事前には良く分からない状況だったのですが、ほぼ全員の方がはじめましての状況だったので自己紹介も兼ねて話してきました。</p>
<p>いざやってみると、とても良い雰囲気で、突っ込みあり、笑いありですごく話しやすかったです。ありがとうございました。</p>
<p>資料を見てもあまり役に立たない気もしますが、いちおうアップしました。</p>
<p>
<div style="width:425px;text-align:left" id="__ss_2977733"><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/shin1x1/phpergae" title="PHPerがGAEで作ってみた">PHPerがGAEで作ってみた</a><object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=20100122gaeltorg-100123110043-phpapp01&#038;stripped_title=phpergae" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=20100122gaeltorg-100123110043-phpapp01&#038;stripped_title=phpergae" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object>
<div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;">View more <a style="text-decoration:underline;" href="http://www.slideshare.net/">presentations</a> from <a style="text-decoration:underline;" href="http://www.slideshare.net/shin1x1">shin1x1</a>.</div>
</div>
<p>以下、雑感を。</p>
<h3>appengine ja night #4</h3>
<ul>
<li>会場はリクルートメディアテクノロジーラボさん。会場もキレイだし、スクリーンマルチだし、無線LANもあるしで、至れり尽くせり:-D<br />=> ありがとうございました。</li>
<li>発表を聞くだけでなく、適時突っ込みを入れるスタイル。<br />=> 議論が深まって面白かったです。発表者は大変だと思いますけど:-D</li>
</ul>
<ul>
<li><a href="http://twitter.com/asami224" target="_blank>@asami224</a>さんは学校の授業のような落ち着いたプレゼン。</li>
<li>DSLは特にWebシステムについてはいつか実用になると思うので、とても興味深いです。</li>
</ul>
<ul>
<li><a href="http://twitter.com/ashigeru" target="_blank>@ashigeru</a> さんプレゼン上手い！資料も分かりやすい。<br />=> プレゼンの勉強になりました:-D</li>
<li>hot.hatebuを作りながら、トランザクション周りは色々思案していたので、なるほどーとうなずくことしきり。</li>
<li>Google App Engineの本、英語だけど買おうかな。</li>
</ul>
<ul>
<li><a href="http://twitter.com/urekat" target="_blank>@urekat</a> さんのビール片手なプレゼン。</li>
<li>JRubyのデモでJava版のスピンアップの重さが良く分かりました:-D<br />=> Pythonではそれほど感じたことが無かったので。</li>
<li>irbからGAEサーバのDataStore書き換えは会場騒然でした。</li>
<li>この次が自分の発表だったので、そわそわしてました。</li>
</ul>
<ul>
<li><a href="http://twitter.com/shin1x1" target="_blank>@shin1x1</a>のBT。</li>
<li>アウェイとか言いましたが、すごく話やすかったです。</li>
<li>@gozasoroとhot.hatebuへの反応ありがとうございました！</li>
<li><a href="http://twitter.com/yuunya/status/8069579412" target="_blank">こんなpost</a>や<a href="http://twitter.com/shin1ogawa/status/8069400186" target="_blank">こんなpost</a>があったりで、このノリ大好きです:-D</li>
</ul>
<ul>
<li>運営のみなさん、ありがとうございました。</li>
<li>次回は来月開催だそうです。みんなやさしい人達だから、興味ある人は参加すると良いですよ。</li>
<li></li>
</ul>
<h3>Python Hack-a-thon #3</h3>
<ul>
<lI>会場はオラクルさん。マルチスクリーン、電源あり、無線LANあり、飲み物無料、キレイと、こちらも至れり尽くせり。<br />=> ありがとうございました。</li>
<li>両日共にこんなに素晴らしい会場を無料で提供頂けるのは本当にありがたいことです。</li>
<li>hackathon初参加。</li>
<li>ワークショップはGAE+Facebookにちらっと参加して、あとはもくもく作ってました。</li>
<li>GAE+Facebookは連携して、友人一覧が出せたのでとりあえず満足:-D</li>
<li>その後はTwitterのOAuthを使った検証と新しいサービスの下調べを。</li>
<li>hackathonの時間はあっという間に終わっちゃいました。</li>
<li>PHPでも同じようなイベントをやっても良いかも。（関西でやろうかな。）</li>
<li>お昼やワークショップ、発表を通じて、普段あまり接することのない分野に触れられて刺激的でした。</li>
<li>自主性をかなり求められるイベントなので、少し参加する人を選ぶイベントかも。オラクルさんの環境で作業したいがために参加する手もありますけどね:-D</li>
<li>運営のみなさん、ありがとうございました。</li>
</ul>
<h3>興味が広がると</h3>
<p>冒頭でも書きましたが、どちらも初参加のイベントだったので、初めてお会いする人ばかりでした。両イベントとも著名な方も多く参加されていたので、ミーハー気分な楽しみもありました:-D</p>
<p>新しいことをやりだすとRPGで新たな地図を手にしたように、これまで行けなかったところに行ける楽しみがあります。</p>
<p>また勉強会をやりたくなってきました。GAEの勉強会を関西でやってみましょうか。</p>

<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/jp/shinxblog?a=lmV54TfyYZE:bmGW-Py9pYI:spdCosxkSQE"><img src="http://feeds.feedburner.com/~ff/jp/shinxblog?d=spdCosxkSQE" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/jp/shinxblog?a=lmV54TfyYZE:bmGW-Py9pYI:OAQBO0PjnPA"><img src="http://feeds.feedburner.com/~ff/jp/shinxblog?d=OAQBO0PjnPA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/jp/shinxblog/~4/lmV54TfyYZE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.1x1.jp/blog/2010/01/event_appengine_ja_night_4_python_hack_a_thon_3.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.1x1.jp/blog/2010/01/event_appengine_ja_night_4_python_hack_a_thon_3.html</feedburner:origLink></item>
		<item>
		<title>自分がいなくなった後も動き続けるWeb</title>
		<link>http://feedproxy.google.com/~r/jp/shinxblog/~3/QbkGF5CpEkc/i_live_in_web.html</link>
		<comments>http://www.1x1.jp/blog/2010/01/i_live_in_web.html#comments</comments>
		<pubDate>Thu, 21 Jan 2010 11:59:43 +0000</pubDate>
		<dc:creator>shinbara</dc:creator>
				<category><![CDATA[Google App Engine(GAE)]]></category>
		<category><![CDATA[雑記]]></category>

		<guid isPermaLink="false">http://www.1x1.jp/blog/?p=1665</guid>
		<description><![CDATA[
自分が死んだ後、Webには何が残るのだろう。
30代半ばになると、いやでも死というものを考える瞬間がある。日頃から常に考えているわけではないけれど、ふとした瞬間に考える。
ある日、何気なく考えた。
「もし、自分が死んだら、Webにある自分はどうなるんだろ。」
blog
まず、このblog。
サーバはレンタルなので、その期限がくれば停止して見られなくなる。
また、1x1.jpドメインも１年経って何も手続きをしなければ失効される。
おそらく死後1年数ヶ月で見ることはできなくなるだろう。
自作のWebサービス
follow okやfindTwitter、hot.hatebuといった自分で運営しているサービスたち。
レンタルサーバに置いているものは、blogと同じく契約が切れれば停止するだろう。
hot.hatebuは GAE（Google App Engine）に置いているので、Googleの気分が変わらなければ残り続ける可能性は高い。最近GAEを熱心にやっているのは、こういう理由もあったりする（別に死後を考えているわけではないけど）。
ただやっぱりドメインが切れると接続できなくなる。
残すことだけを考えるなら、独自ドメインではなく、「*.appspot.com」で公開した方が良い。
Twitter/Wassr/usream等のWebサービス
これはサービスさえ残れば、そのまま残り続けるだろう。
Twitterには思いついたことをすぐにpostしているから、結構生々しいというか、生きている感じがする。

以前、Twitter上で有名な方が亡くなられた。2007年頃からTwitterをやっている人なら知っている人も多いと思う。
最近、何かの拍子にその方を思い出し、その方のTwitterを見てみると、アカウントがそのまま残っていた。
残されたtweetは、ごく自然に発せられたもので、日付が2007年ということを除けば、まるで生きているようだった。
その方はustream配信もされていたので、録画したものがそのまま残されていた。
私はそれほど接点があったわけではないが、何となく気になる人だった。（当時はまだ日本のTwitterユーザ数も少なくて、わりとみんな仲良しな空気もあった。）
彼ほどの影響力は無いにせよ、サービスが残っている間は、何かしらの想いがWebに残り続ける。

問題はドメイン
blogとかは大手の無料サービスを使う、自分が作るサービスはGAEを使う、としておけば、しばらくは動き続ける。
問題はやっぱりドメインで、自動更新の仕組みが欲しいところ。こだわりを捨てられるのであれば、割り当てられたドメインで運営すれば良い。
何かを残したい
生きてきた何かを残したい、という想いにWebは向いている。誰でも発信できるし、多くはサービスが無くならない限りコンテンツが残る。
GAEで最初に作ったアプリケーションは、家族の誕生日にメッセージを送るというシンプルなものだった。
少しでもWeb開発をかじった人なら誰でも簡単に作れるものだし、公開するつもりも無いので操作画面も無い。
ただGAEなら数年単位の未来までは動き続けるだろうから、もし明日いなくなっても、しばらくは送り続けてくれるだろう。（無料で利用できるGAEには「何があっても動き続ける」という利点もある。）
いつも考えているわけではないけど、たまには。

]]></description>
			<content:encoded><![CDATA[
<p>自分が死んだ後、Webには何が残るのだろう。</p>
<p>30代半ばになると、いやでも死というものを考える瞬間がある。日頃から常に考えているわけではないけれど、ふとした瞬間に考える。</p>
<p>ある日、何気なく考えた。</p>
<p>「もし、自分が死んだら、Webにある自分はどうなるんだろ。」</p>
<h3>blog</h3>
<p>まず、このblog。</p>
<p>サーバはレンタルなので、その期限がくれば停止して見られなくなる。</p>
<p>また、1x1.jpドメインも１年経って何も手続きをしなければ失効される。</p>
<p>おそらく死後1年数ヶ月で見ることはできなくなるだろう。</p>
<h3>自作のWebサービス</h3>
<p><a href="http://follow-ok.in/" target="_blank">follow ok</a>や<a href="http://findTwitter.in/searh" target="_blank">findTwitter</a>、<a href="http://hot.hatebu.jp/" target="_blank">hot.hatebu</a>といった自分で運営しているサービスたち。</p>
<p>レンタルサーバに置いているものは、blogと同じく契約が切れれば停止するだろう。</p>
<p>hot.hatebuは GAE（Google App Engine）に置いているので、Googleの気分が変わらなければ残り続ける可能性は高い。最近GAEを熱心にやっているのは、こういう理由もあったりする（別に死後を考えているわけではないけど）。</p>
<p>ただやっぱりドメインが切れると接続できなくなる。</p>
<p>残すことだけを考えるなら、独自ドメインではなく、「*.appspot.com」で公開した方が良い。</p>
<h3>Twitter/Wassr/usream等のWebサービス</h3>
<p>これはサービスさえ残れば、そのまま残り続けるだろう。</p>
<p>Twitterには思いついたことをすぐにpostしているから、結構生々しいというか、生きている感じがする。</p>
</p>
<p>以前、Twitter上で有名な方が亡くなられた。2007年頃からTwitterをやっている人なら知っている人も多いと思う。</p>
<p>最近、何かの拍子にその方を思い出し、その方のTwitterを見てみると、アカウントがそのまま残っていた。</p>
<p>残されたtweetは、ごく自然に発せられたもので、日付が2007年ということを除けば、まるで生きているようだった。</p>
<p>その方はustream配信もされていたので、録画したものがそのまま残されていた。</p>
<p>私はそれほど接点があったわけではないが、何となく気になる人だった。（当時はまだ日本のTwitterユーザ数も少なくて、わりとみんな仲良しな空気もあった。）</p>
<p>彼ほどの影響力は無いにせよ、サービスが残っている間は、何かしらの想いがWebに残り続ける。</p>
</p>
<h3>問題はドメイン</h3>
<p>blogとかは大手の無料サービスを使う、自分が作るサービスはGAEを使う、としておけば、しばらくは動き続ける。</p>
<p>問題はやっぱりドメインで、自動更新の仕組みが欲しいところ。こだわりを捨てられるのであれば、割り当てられたドメインで運営すれば良い。</p>
<h3>何かを残したい</h3>
<p>生きてきた何かを残したい、という想いにWebは向いている。誰でも発信できるし、多くはサービスが無くならない限りコンテンツが残る。</p>
<p>GAEで最初に作ったアプリケーションは、家族の誕生日にメッセージを送るというシンプルなものだった。</p>
<p>少しでもWeb開発をかじった人なら誰でも簡単に作れるものだし、公開するつもりも無いので操作画面も無い。</p>
<p>ただGAEなら数年単位の未来までは動き続けるだろうから、もし明日いなくなっても、しばらくは送り続けてくれるだろう。（無料で利用できるGAEには「何があっても動き続ける」という利点もある。）</p>
<p>いつも考えているわけではないけど、たまには。</p>

<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/jp/shinxblog?a=QbkGF5CpEkc:uyODdKv9lF0:spdCosxkSQE"><img src="http://feeds.feedburner.com/~ff/jp/shinxblog?d=spdCosxkSQE" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/jp/shinxblog?a=QbkGF5CpEkc:uyODdKv9lF0:OAQBO0PjnPA"><img src="http://feeds.feedburner.com/~ff/jp/shinxblog?d=OAQBO0PjnPA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/jp/shinxblog/~4/QbkGF5CpEkc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.1x1.jp/blog/2010/01/i_live_in_web.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.1x1.jp/blog/2010/01/i_live_in_web.html</feedburner:origLink></item>
		<item>
		<title>はてブホットエントリーを見るWebサービス「hot.hatebu」を作りました</title>
		<link>http://feedproxy.google.com/~r/jp/shinxblog/~3/p0QhTOaYIGk/hot_hatebu.html</link>
		<comments>http://www.1x1.jp/blog/2010/01/hot_hatebu.html#comments</comments>
		<pubDate>Tue, 19 Jan 2010 00:29:20 +0000</pubDate>
		<dc:creator>shinbara</dc:creator>
				<category><![CDATA[Google App Engine(GAE)]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Webサービス]]></category>

		<guid isPermaLink="false">http://www.1x1.jp/blog/?p=1637</guid>
		<description><![CDATA[
はてブホットエントリーを集計して見るWebサービス「hot.hatebu」を作りました。


はてブのホットエントリーを集計して一覧で見るサービスです。機能をざっくり挙げると以下です。

「エントリ」「時間」「タグ」「ユーザ」の集計データを表示
日付範囲を指定して、合算した集計データを表示
パネル機能

詳細については説明ページがありますので、こちらをどうぞ。hot.hatebu &#124; 説明ページ
ここでは作った経緯や使い方のポイントなどを。
週間はてブホットエントリーを見たい
そもそものきっかけは週間ホットエントリーを見たいというものでした。イベントやネットラジオなどで話す時のネタにホットエントリーを使うのですが、公式サイトでは一日単位で見る方法しかありません。
例えば、先週のホットエントリーをまとめて見る場合は1ページづつページを辿るしかありません。
そこで複数日のホットエントリーを合算して見られるサイトが欲しいと思いました。
あとちょうどGAEを試していたので、何か作ってみたいというのも理由の1つです。
平日は12時台、休日は23時台がピーク
実際にやってみて面白かったのが時間別のブックマーク数です。
平日と休日ではっきりと推移が異なります。
・平日（2009/12/07〜2009/12/11）
hot.hatebu &#124; 2009/12/07〜2009/12/11の時間別
・休日（2009/12/12〜2009/12/13）hot.hatebu &#124; 2009/12/12〜2009/12/13の時間別
平日はオフィスで昼休みにRSS ReaderやTwitterからブックマーク、休日は家に帰って寝る前にWebを眺めてブックマーク、という使い方が多いのかもしれませんね。
パネル機能
あったら面白いなと思っておまけで付けた機能です。

勉強会やネットラジオをやる時、何となく話すネタが欲しい時ありませんか？そんな時にプロジェクタでこの画面を映して、表示されたエントリーについて話ができれば考えています。
イメージとしてはテレビのバラエティで見るパネルですね。
データは2009/12/01〜
データはまだ2009/12/01以降のものだけです。今後のデータは随時、追加していきます。
DataStoreで悩む
GAE+Pythonで作りました。
悩んだのはDataStore周りの実装ですね。どうしてもRDBMS感覚で作ってしまうので、パフォーマンスが出なかったり、30秒制限にひっかかったりで試行錯誤を繰り返しました。
TaskQueueを使う方法が分かってからは何とか形になりました。色々な制限があるGAEでは、TaskQueueをどう上手く使うかがキーですね。
無料のQuotaを超えて課金をはじめると分かりやすく「リソース浪費=コスト（金銭）の浪費」に繋がります。例えば、ロジックの組み方が悪くてCPUを無駄に使えばその分費用がかかります。これまで以上にチューニングや処理の分散化（ブラウザでできることはブラウザにやらせる）といったアプローチが重要になりそうです。
ホッテントリーは面白い
ホットエントリー、はてなブックマークのデータは題材として面白いですね。自分で作ってみても色々な見方ができて楽しいです。
ホッテエントリーのチェックに、話のネタ探しに、ブックマークの分析に使って頂ければ嬉しいです。

]]></description>
			<content:encoded><![CDATA[
<p>はてブホットエントリーを集計して見るWebサービス「hot.hatebu」を作りました。</p>
<p><a href="http://hot.hatebu.jp/" target="_blank"><img src="http://www.1x1.jp/blog/wp-content/uploads/2010/01/logo.png" alt="" title="logo" width="247" height="70" class="alignright size-full wp-image-1639" /></a></p>
<p><a href="http://hot.hatebu.jp/" target="_blank"><img class="box" src="http://www.1x1.jp/blog/wp-content/uploads/2010/01/hot_hatebu_screen.png" alt="" title="hot_hatebu_screen" width="320" height="242" class="alignright size-full wp-image-1652" /></a></p>
<p>はてブのホットエントリーを集計して一覧で見るサービスです。機能をざっくり挙げると以下です。</p>
<ul>
<li>「エントリ」「時間」「タグ」「ユーザ」の集計データを表示</li>
<li>日付範囲を指定して、合算した集計データを表示</li>
<li>パネル機能</li>
</ul>
<p>詳細については説明ページがありますので、<a href="http://hot.hatebu.jp/about" target="_blank">こちら</a>をどうぞ。<br /><a href="http://hot.hatebu.jp/about" target="_blank">hot.hatebu | 説明ページ</a></p>
<p>ここでは作った経緯や使い方のポイントなどを。</p>
<h3>週間はてブホットエントリーを見たい</h3>
<p>そもそものきっかけは週間ホットエントリーを見たいというものでした。イベントやネットラジオなどで話す時のネタにホットエントリーを使うのですが、公式サイトでは一日単位で見る方法しかありません。</p>
<p>例えば、先週のホットエントリーをまとめて見る場合は1ページづつページを辿るしかありません。</p>
<p>そこで複数日のホットエントリーを合算して見られるサイトが欲しいと思いました。</p>
<p>あとちょうどGAEを試していたので、何か作ってみたいというのも理由の1つです。</p>
<h3>平日は12時台、休日は23時台がピーク</h3>
<p>実際にやってみて面白かったのが時間別のブックマーク数です。</p>
<p>平日と休日ではっきりと推移が異なります。</p>
<p>・平日（2009/12/07〜2009/12/11）<br />
<a href="http://hot.hatebu.jp/hours?from=20091207&#038;to=20091211&#038;is_date_range=1" target="_blank">hot.hatebu | 2009/12/07〜2009/12/11の時間別</a></p>
<p>・休日（2009/12/12〜2009/12/13）<br /><a href="http://hot.hatebu.jp/hours?from=200912128&#038;to=20091213&#038;is_date_range=1" target="_blank">hot.hatebu | 2009/12/12〜2009/12/13の時間別</a></p>
<p>平日はオフィスで昼休みにRSS ReaderやTwitterからブックマーク、休日は家に帰って寝る前にWebを眺めてブックマーク、という使い方が多いのかもしれませんね。</p>
<h3>パネル機能</h3>
<p>あったら面白いなと思っておまけで付けた機能です。</p>
<p><img src="http://www.1x1.jp/blog/wp-content/uploads/2010/01/about_panel-e1263870449752.png" alt="" title="about_panel" width="320" height="194" class="alignright size-full wp-image-1657" /></p>
<p>勉強会やネットラジオをやる時、何となく話すネタが欲しい時ありませんか？そんな時にプロジェクタでこの画面を映して、表示されたエントリーについて話ができれば考えています。</p>
<p>イメージとしてはテレビのバラエティで見るパネルですね。</p>
<h3>データは2009/12/01〜</h3>
<p>データはまだ2009/12/01以降のものだけです。今後のデータは随時、追加していきます。</p>
<h3>DataStoreで悩む</h3>
<p>GAE+Pythonで作りました。</p>
<p>悩んだのはDataStore周りの実装ですね。どうしてもRDBMS感覚で作ってしまうので、パフォーマンスが出なかったり、30秒制限にひっかかったりで試行錯誤を繰り返しました。</p>
<p>TaskQueueを使う方法が分かってからは何とか形になりました。色々な制限があるGAEでは、TaskQueueをどう上手く使うかがキーですね。</p>
<p>無料のQuotaを超えて課金をはじめると分かりやすく「リソース浪費=コスト（金銭）の浪費」に繋がります。例えば、ロジックの組み方が悪くてCPUを無駄に使えばその分費用がかかります。これまで以上にチューニングや処理の分散化（ブラウザでできることはブラウザにやらせる）といったアプローチが重要になりそうです。</p>
<h3>ホッテントリーは面白い</h3>
<p>ホットエントリー、はてなブックマークのデータは題材として面白いですね。自分で作ってみても色々な見方ができて楽しいです。</p>
<p>ホッテエントリーのチェックに、話のネタ探しに、ブックマークの分析に使って頂ければ嬉しいです。</p>

<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/jp/shinxblog?a=p0QhTOaYIGk:MLmk9tZsgSw:spdCosxkSQE"><img src="http://feeds.feedburner.com/~ff/jp/shinxblog?d=spdCosxkSQE" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/jp/shinxblog?a=p0QhTOaYIGk:MLmk9tZsgSw:OAQBO0PjnPA"><img src="http://feeds.feedburner.com/~ff/jp/shinxblog?d=OAQBO0PjnPA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/jp/shinxblog/~4/p0QhTOaYIGk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.1x1.jp/blog/2010/01/hot_hatebu.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.1x1.jp/blog/2010/01/hot_hatebu.html</feedburner:origLink></item>
		<item>
		<title>Google App Engineで独自ドメインを使う</title>
		<link>http://feedproxy.google.com/~r/jp/shinxblog/~3/5fqbTJKKgW4/google_app_engine_my_domain.html</link>
		<comments>http://www.1x1.jp/blog/2010/01/google_app_engine_my_domain.html#comments</comments>
		<pubDate>Mon, 18 Jan 2010 14:07:14 +0000</pubDate>
		<dc:creator>shinbara</dc:creator>
				<category><![CDATA[Google App Engine(GAE)]]></category>

		<guid isPermaLink="false">http://www.1x1.jp/blog/?p=1592</guid>
		<description><![CDATA[
Google App Engine（GAE）で独自ドメインを使う方法です。

GAEに設置したアプリケーションはデフォルトでは、[アプリケーションID + .appspot.com]というドメインでアクセスすることができます。
また、これとは別に独自ドメインをアプリケーションに割り当てることもできます。
独自ドメインを割り当てる方法は知っていないと嵌りやすいので手順を書いておきます。
仕組みと手順
まずは仕組みから。
GAEでの独自ドメイン割り当ては、独自ドメインのCNAMEでGAEサーバを指すことで実現します。よって独自ドメインのDNSが設定できる必要があります。
私はドメイン管理にムームードメインを使っているのですが、ムームードメインではコントロールパネル（Web管理画面）にてDNSの設定ができます。
次に手順。
前提として独自ドメインは既に取得済みとします。

Google Appsを申し込む
Google Appsでドメイン設定
Google App Engineでドメインを割り当てる

1. / 2. ではGoogle Appsにて独自ドメインの設定を行います。Google App Engineではなく、Google Appsなのでご注意を。
1. Google Appsを申し込む
Google Appsにて申込みを行います。
Google Apps
Google Appsには幾つかエディションがあるのですが、ここでは無料で利用できる「Standard Edition」を申し込みます。
画面右メニューから「Standard Edition」を選択します。

次の画面の右メニューから「開始方法」を選択します。

設定するドメインを入力します。既にドメインは取得済みなので、「既存のドメイン名を使用する」タブにドメイン名を入力します。

次に申込者（アカウント管理者）情報入力と管理者アカウント登録を行います。


これでGoogle Appsの申込みは完了です。
Google Appsの管理画面（ダッシュボード）に遷移します。）
2. Google Appsでドメイン設定
Google Appsにてドメインが利用できるように設定します。
Google Appsを申し込んだ直後はまだドメインは利用できるようにはなっていません。(申込みだけで使えるようになってたら問題:-D）ドメインの所有権をGoogleが確認することにより利用が可能になります。
ドメイン所有権の確認を行うには、ダッシュボード画面上部にある「ドメインの所有権を確認」リンクに進みます。

ドメイン所有権の確認には「HTMLファイルをアップロード」する方法と「CNAMEレコードを変更」方法があります。今回、ドメインを取得したムームードメインでは管理画面からDNS設定ができるので、今回はプルダウンで「CNAMEレコードを変更」を選択します。
プルダウンを選択すると、所有権確認用のDNS設定が表示されます。この画面の説明どおりにDNSを設定して、「確認」をクリックすると所有権の確認をGoogleが行います。

たとえばムームードメインなら以下な感じです。

DNSでCNAMEを割り当てると、ブラウザでhttp://googlexxxxxxx.example.com/にアクセスするとgoogle.comが表示されるはずです。
所有権の確認を依頼するとダッシュボードに確認中を示すメッセージが表示されます。「48時間程度」と書いてありますが、私が試した時は数分で確認が完了しました。

3. Google App Engineでドメインを割り当てる
いよいよGAEで独自ドメインを割り当てます。
まずGAEの管理画面にアクセスします。左メニューにある「Application Settings」をクリックして、画面中央の「Domain Setup」にある「Add Domain...」ボタンをクリックします。

Add Domain画面にて割り当てるドメインを入力します。

次の画面の中央にある「新しいURLを追加」リンクをクリックします。

GAEアプリケーションに割り当てるホスト名を入力します。なおホスト名無しのドメイン（Naked Domain）は以前は設定できたようですが、現在は設定できないようです。

最後に入力したホスト名についてDNSの設定を行います。手順はドメイン所有権の確認で行ったのと同じようにホスト名のCNAMEに指示された内容を設定します。

ムームードメインでの設定例です。

最後に画面下の「指定された手順を完了しました」をクリックして設定は完了です。
ちょっと手間。。。
はじめて設定したときは行程に目がくらっとしたのですが、慣れると結構トントン拍子で設定できます。
この方法でドメイン設定を行うとGoogle Appsが独自ドメインで使えるのでそれはそれでメリットになります。例えば設定したドメインのメールアドレスをGoogle Apps上で作成することができます。（要設定）
GAEで独自ドメインを使う時はご参考にどうぞ。

]]></description>
			<content:encoded><![CDATA[
<p>Google App Engine（GAE）で独自ドメインを使う方法です。</p>
<p><a href="http://www.1x1.jp/blog/wp-content/uploads/2010/01/gae_my_domain.png"><img src="http://www.1x1.jp/blog/wp-content/uploads/2010/01/gae_my_domain.png" alt="" title="gae_my_domain" width="276" height="133" class="alignright size-full wp-image-1594" /></a></p>
<p>GAEに設置したアプリケーションはデフォルトでは、[アプリケーションID + .appspot.com]というドメインでアクセスすることができます。</p>
<p>また、これとは別に独自ドメインをアプリケーションに割り当てることもできます。</p>
<p>独自ドメインを割り当てる方法は知っていないと嵌りやすいので手順を書いておきます。</p>
<h3>仕組みと手順</h3>
<p>まずは仕組みから。</p>
<p>GAEでの独自ドメイン割り当ては、独自ドメインのCNAMEでGAEサーバを指すことで実現します。よって独自ドメインのDNSが設定できる必要があります。</p>
<p>私はドメイン管理にムームードメインを使っているのですが、ムームードメインではコントロールパネル（Web管理画面）にてDNSの設定ができます。</p>
<p>次に手順。</p>
<p>前提として独自ドメインは既に取得済みとします。
<ol>
<li>Google Appsを申し込む</li>
<li>Google Appsでドメイン設定</li>
<li>Google App Engineでドメインを割り当てる</li>
</ol>
<p>1. / 2. ではGoogle Appsにて独自ドメインの設定を行います。Google App Engineではなく、<strong>Google Apps</strong>なのでご注意を。</p>
<h3>1. Google Appsを申し込む</h3>
<p>Google Appsにて申込みを行います。</p>
<p><a href="http://www.google.com/a/" target="_blank">Google Apps</a></p>
<p>Google Appsには幾つかエディションがあるのですが、ここでは無料で利用できる「Standard Edition」を申し込みます。</p>
<p>画面右メニューから「Standard Edition」を選択します。</p>
<p><img src="http://www.1x1.jp/blog/wp-content/uploads/2010/01/google_apps_domain_1.png" alt="" title="google_apps_domain_1" width="254" height="137" class="alignright size-full wp-image-1597" /></p>
<p>次の画面の右メニューから「開始方法」を選択します。</p>
<p><img src="http://www.1x1.jp/blog/wp-content/uploads/2010/01/google_apps_domain_2.png" alt="" title="google_apps_domain_2" width="225" height="105" class="alignright size-full wp-image-1598" /></p>
<p>設定するドメインを入力します。既にドメインは取得済みなので、「既存のドメイン名を使用する」タブにドメイン名を入力します。</p>
<p><img src="http://www.1x1.jp/blog/wp-content/uploads/2010/01/google_apps_domain_3.png" alt="" title="google_apps_domain_3" width="335" height="248" class="alignright size-full wp-image-1604" /></p>
<p>次に申込者（アカウント管理者）情報入力と管理者アカウント登録を行います。</p>
<p><img style="border: 1px solid #ccc;" src="http://www.1x1.jp/blog/wp-content/uploads/2010/01/google_apps_domain_4.png" alt="" title="google_apps_domain_4" width="484" height="250" class="alignright size-full wp-image-1607" /></p>
<p><img style="border: 1px solid #ccc;" src="http://www.1x1.jp/blog/wp-content/uploads/2010/01/google_apps_domain_5.png" alt="" title="google_apps_domain_5" width="485" height="205" class="alignright size-full wp-image-1605" /></p>
<p>これでGoogle Appsの申込みは完了です。</p>
<p>Google Appsの管理画面（ダッシュボード）に遷移します。）</p>
<h3>2. Google Appsでドメイン設定</h3>
<p>Google Appsにてドメインが利用できるように設定します。</p>
<p>Google Appsを申し込んだ直後はまだドメインは利用できるようにはなっていません。(申込みだけで使えるようになってたら問題:-D）ドメインの所有権をGoogleが確認することにより利用が可能になります。</p>
<p>ドメイン所有権の確認を行うには、ダッシュボード画面上部にある「ドメインの所有権を確認」リンクに進みます。</p>
<p><img src="http://www.1x1.jp/blog/wp-content/uploads/2010/01/google_apps_domain_7.png" alt="" title="google_apps_domain_7" width="385" height="92" class="alignright size-full wp-image-1614" /></p>
<p>ドメイン所有権の確認には「HTMLファイルをアップロード」する方法と「CNAMEレコードを変更」方法があります。今回、ドメインを取得したムームードメインでは管理画面からDNS設定ができるので、今回はプルダウンで「CNAMEレコードを変更」を選択します。</p>
<p>プルダウンを選択すると、所有権確認用のDNS設定が表示されます。この画面の説明どおりにDNSを設定して、「確認」をクリックすると所有権の確認をGoogleが行います。</p>
<p><img src="http://www.1x1.jp/blog/wp-content/uploads/2010/01/google_apps_domain_8.png" alt="" title="google_apps_domain_8" width="400" height="350" class="alignright size-full wp-image-1617" /></p>
<p>たとえばムームードメインなら以下な感じです。</p>
<p><img src="http://www.1x1.jp/blog/wp-content/uploads/2010/01/mu_mu_domain_2.png" alt="" title="mu_mu_domain_2" width="450" height="101" class="alignright size-full wp-image-1618" /></p>
<p>DNSでCNAMEを割り当てると、ブラウザでhttp://googlexxxxxxx.example.com/にアクセスするとgoogle.comが表示されるはずです。</p>
<p>所有権の確認を依頼するとダッシュボードに確認中を示すメッセージが表示されます。「48時間程度」と書いてありますが、私が試した時は数分で確認が完了しました。</p>
<p><img style="border: 1px solid #ccc;" src="http://www.1x1.jp/blog/wp-content/uploads/2010/01/google_apps_domain_9.png" alt="" title="google_apps_domain_9" width="517" height="23" class="alignright size-full wp-image-1620" /></p>
<h3>3. Google App Engineでドメインを割り当てる</h3>
<p>いよいよGAEで独自ドメインを割り当てます。</p>
<p>まずGAEの管理画面にアクセスします。左メニューにある「Application Settings」をクリックして、画面中央の「Domain Setup」にある「Add Domain...」ボタンをクリックします。</p>
<p><img src="http://www.1x1.jp/blog/wp-content/uploads/2010/01/google_apps_domain_11.png" alt="" title="google_apps_domain_11" width="476" height="245" class="alignright size-full wp-image-1623" /></p>
<p>Add Domain画面にて割り当てるドメインを入力します。</p>
<p><img src="http://www.1x1.jp/blog/wp-content/uploads/2010/01/google_apps_domain_12.png" alt="" title="google_apps_domain_12" width="246" height="122" class="alignright size-full wp-image-1625" /></p>
<p>次の画面の中央にある「新しいURLを追加」リンクをクリックします。</p>
<p><img src="http://www.1x1.jp/blog/wp-content/uploads/2010/01/google_apps_domain_13.png" alt="" title="google_apps_domain_13" width="400" height="100" class="alignright size-full wp-image-1626" /></p>
<p>GAEアプリケーションに割り当てるホスト名を入力します。なおホスト名無しのドメイン（Naked Domain）は以前は設定できたようですが、現在は設定できないようです。</p>
<p><img src="http://www.1x1.jp/blog/wp-content/uploads/2010/01/google_apps_domain_14.png" alt="" title="google_apps_domain_14" width="410" height="51" class="alignright size-full wp-image-1627" /></p>
<p>最後に入力したホスト名についてDNSの設定を行います。手順はドメイン所有権の確認で行ったのと同じようにホスト名のCNAMEに指示された内容を設定します。</p>
<p><img src="http://www.1x1.jp/blog/wp-content/uploads/2010/01/google_apps_domain_15.png" alt="" title="google_apps_domain_15" width="331" height="296" class="alignright size-full wp-image-1628" /></p>
<p>ムームードメインでの設定例です。</p>
<p><img src="http://www.1x1.jp/blog/wp-content/uploads/2010/01/mu_mu_domain_3.png" alt="" title="mu_mu_domain_3" width="449" height="78" class="alignright size-full wp-image-1630" /></a></p>
<p>最後に画面下の「指定された手順を完了しました」をクリックして設定は完了です。</p>
<h3>ちょっと手間。。。</h3>
<p>はじめて設定したときは行程に目がくらっとしたのですが、慣れると結構トントン拍子で設定できます。</p>
<p>この方法でドメイン設定を行うとGoogle Appsが独自ドメインで使えるのでそれはそれでメリットになります。例えば設定したドメインのメールアドレスをGoogle Apps上で作成することができます。（要設定）</p>
<p>GAEで独自ドメインを使う時はご参考にどうぞ。</p>

<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/jp/shinxblog?a=5fqbTJKKgW4:eWgh9cZR2nc:spdCosxkSQE"><img src="http://feeds.feedburner.com/~ff/jp/shinxblog?d=spdCosxkSQE" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/jp/shinxblog?a=5fqbTJKKgW4:eWgh9cZR2nc:OAQBO0PjnPA"><img src="http://feeds.feedburner.com/~ff/jp/shinxblog?d=OAQBO0PjnPA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/jp/shinxblog/~4/5fqbTJKKgW4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.1x1.jp/blog/2010/01/google_app_engine_my_domain.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.1x1.jp/blog/2010/01/google_app_engine_my_domain.html</feedburner:origLink></item>
		<item>
		<title>Google App EngineでCPU Timeを使い切った</title>
		<link>http://feedproxy.google.com/~r/jp/shinxblog/~3/EWKANn-GBUI/google_app_engine_over_quota.html</link>
		<comments>http://www.1x1.jp/blog/2010/01/google_app_engine_over_quota.html#comments</comments>
		<pubDate>Sat, 16 Jan 2010 07:19:42 +0000</pubDate>
		<dc:creator>shinbara</dc:creator>
				<category><![CDATA[Google App Engine(GAE)]]></category>

		<guid isPermaLink="false">http://www.1x1.jp/blog/?p=1568</guid>
		<description><![CDATA[
Google App Engine(GAE)でCPU Timeを使い切りました。

GAEは従量制のサービスで、あらかじめ設定した金額内で利用できるリソースが決まっています。これはQuotaと呼ばれていて、CPU、ネットワーク流量、保存データ、API呼び出し回数等々で制限があります。
よく言われる「GAE=無料」というのは、無料（課金しない）なら、そのQuotaが適用されるということです。
GAE+Pythonでとあるサイトの動作確認をやっていたところ、無料分のCPU Timeを使い切りました。
実際に使い切るとこんな感じになります。
サイト
ブラウザでアクセスすると、どのページを見ても503が返ってきて、Googleのエラー画面が表示されます。

HTTPレスポンスヘッダは以下。
PLAIN TEXT
CODE:




HTTP/1.x 503 Service Unavailable


Date: Sat, 16 Jan 2010 06:21:24 GMT


Content-Type: text/html


Server: Google Frontend


Content-Length: 999


X-XSS-Protection: 0 






Task Queue
ちょうどTask Queueにキューが入っていたのですが、CPU Timeを使い切ったあとは、タスクが実行されなくなりました。
45個のタスクが残っているのに実行されていません。

解放待ち
今回は24hに使えるCPU Timeをオーバーしたので、時間が経過すれば利用できるようになるはずです。
実際のサイトではサイト監視で503が出たら、Quotaを広げる（課金額を増やす）といった運用になるのでしょうね。

解放まであと1時間。。。
追記：1時間後に解放されました。

]]></description>
			<content:encoded><![CDATA[
<p>Google App Engine(GAE)でCPU Timeを使い切りました。</p>
<p><img src="http://www.1x1.jp/blog/wp-content/uploads/2010/01/gae_cpu_100.png" alt="" title="gae_cpu_100" width="382" height="67" class="alignright size-full wp-image-1571" /></p>
<p>GAEは従量制のサービスで、あらかじめ設定した金額内で利用できるリソースが決まっています。これはQuotaと呼ばれていて、CPU、ネットワーク流量、保存データ、API呼び出し回数等々で制限があります。</p>
<p>よく言われる「GAE=無料」というのは、無料（課金しない）なら、そのQuotaが適用されるということです。</p>
<p>GAE+Pythonでとあるサイトの動作確認をやっていたところ、無料分のCPU Timeを使い切りました。</p>
<p>実際に使い切るとこんな感じになります。</p>
<h3>サイト</h3>
<p>ブラウザでアクセスすると、どのページを見ても503が返ってきて、Googleのエラー画面が表示されます。</p>
<p><img src="http://www.1x1.jp/blog/wp-content/uploads/2010/01/gae_503_over_quota.png" alt="" title="gae_503_over_quota" width="429" height="218" class="alignright size-full wp-image-1576" /></p>
<p>HTTPレスポンスヘッダは以下。</p>
<div class="igBar"><span id="lcode-96"><a href="#" onclick="javascript:showPlainTxt('code-96'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-96">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">HTTP/<span style="color:#800000;color:#800000;">1</span>.<span style="">x</span> <span style="color:#800000;color:#800000;">503</span> Service Unavailable</div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">Date: Sat, <span style="color:#800000;color:#800000;">16</span> Jan <span style="color:#800000;color:#800000;">2010</span> <span style="color:#800000;color:#800000;">06</span>:<span style="color:#800000;color:#800000;">21</span>:<span style="color:#800000;color:#800000;">24</span> GMT</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">Content-Type: text/html</div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">Server: Google Frontend</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">Content-Length: <span style="color:#800000;color:#800000;">999</span></div>
</li>
<li style="font-weight: bold;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">X-XSS-Protection: <span style="color:#800000;color:#800000;">0</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<h3>Task Queue</h3>
<p>ちょうどTask Queueにキューが入っていたのですが、CPU Timeを使い切ったあとは、タスクが実行されなくなりました。</p>
<p>45個のタスクが残っているのに実行されていません。</p>
<p><a href="http://www.1x1.jp/blog/wp-content/uploads/2010/01/gae_tq_45_01.png"><img src="http://www.1x1.jp/blog/wp-content/uploads/2010/01/gae_tq_45_01.png" alt="" title="gae_tq_45_0" width="316" height="66" class="alignright size-full wp-image-1582" /></a></p>
<h3>解放待ち</h3>
<p>今回は24hに使えるCPU Timeをオーバーしたので、時間が経過すれば利用できるようになるはずです。</p>
<p>実際のサイトではサイト監視で503が出たら、Quotaを広げる（課金額を増やす）といった運用になるのでしょうね。</p>
<p><img src="http://www.1x1.jp/blog/wp-content/uploads/2010/01/gae_quotas_reset.png" alt="" title="gae_quotas_reset" width="259" height="22" class="alignright size-full wp-image-1584" /></p>
<p>解放まであと1時間。。。</p>
<p><strong>追記：1時間後に解放されました。</strong></p>

<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/jp/shinxblog?a=EWKANn-GBUI:HUfgjE2zpzY:spdCosxkSQE"><img src="http://feeds.feedburner.com/~ff/jp/shinxblog?d=spdCosxkSQE" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/jp/shinxblog?a=EWKANn-GBUI:HUfgjE2zpzY:OAQBO0PjnPA"><img src="http://feeds.feedburner.com/~ff/jp/shinxblog?d=OAQBO0PjnPA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/jp/shinxblog/~4/EWKANn-GBUI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.1x1.jp/blog/2010/01/google_app_engine_over_quota.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.1x1.jp/blog/2010/01/google_app_engine_over_quota.html</feedburner:origLink></item>
		<item>
		<title>sendmail .forwardで起動するコマンドのパスを変えたら、smrshも変更する</title>
		<link>http://feedproxy.google.com/~r/jp/shinxblog/~3/ydMmZyUDSbM/sendmail_smrsh.html</link>
		<comments>http://www.1x1.jp/blog/2010/01/sendmail_smrsh.html#comments</comments>
		<pubDate>Wed, 13 Jan 2010 10:54:20 +0000</pubDate>
		<dc:creator>shinbara</dc:creator>
				<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://www.1x1.jp/blog/?p=1556</guid>
		<description><![CDATA[
何回やってもハマるから書いとく。
.forwardやsmrshについての解説はここでは飛ばします。ようは受信メールをトリガーに何か処理をするためのものです。（携帯の空メール連携なんかは良くやりますね。）
大事なところはここ。
プログラム名の前にあるパス名は全て取り除かれるため、 ``/usr/bin/vacation'', ``/home/server/mydir/bin/vacation'', ``vacation'' などは全て ``/usr/libexec/sm.bin/vacation'' と解釈されます。

Manpage of SMRSH

.forwardで起動するコマンドのパスだけを書き換えてもファイル名しか見てないので意味がありません。
元の設定
例えば、これまで起動していたコマンドが[/path/to/old/command]とします。
.forwardは以下な感じ。
PLAIN TEXT
CODE:




&#124;/path/to/old/command 






/etc/smrshにはシンボリックリンクが張られています。

# ln -s /path/to/old/command /etc/smrsh/command

起動コマンドパスの変更
何らかの事情でcommandコマンドのパスが変わって、[/path/to/new/command]になったとします。
当然ながら.forwardの起動コマンドパスを書き換えます。
PLAIN TEXT
CODE:




&#124;/path/to/new/command 






これでokと思って、メールとの連携をするとなぜか[/path/to/old/command]が実行されます。
おかしいと思って/var/log/maillogを見ると、ちゃんと[/path/to/new/command]が実行されているログが残っています。
PLAIN TEXT
CODE:




Jan 12 18:22:30 user sendmail&#91;12152&#93;: xxxxxxxxxxxxxxxxx: to=&#124;/path/to/new/command ... 






[/path/to/new/command]が実行されるはずで、ログにも記録されているのに、なぜか[/path/to/old/command]が実行される。なんで？なんで？となるわけです。
実はsmrshでは冒頭の引用のとおり.forwardに書いてある起動コマンドのパスなんか見ちゃあいないんですね。見ているのはファイル名だけで、結局は/etc/smrshにある同名のコマンドを実行するだけだと。
つまりこの場合は/etc/smrsh/にあるシンボリックリンクを書き換えないとダメなんですね。

# rm /etc/smrsh/command
# ln -s /path/to/new/command /etc/smrsh/command

これで[/path/to/new/command]が新たに起動するようになります。
あまり無いことなんで
はまります。たまにしかやらないので今回もはまりました。。。
ここに書いて次こそ忘れないように。

]]></description>
			<content:encoded><![CDATA[
<p>何回やってもハマるから書いとく。</p>
<p>.forwardやsmrshについての解説はここでは飛ばします。ようは受信メールをトリガーに何か処理をするためのものです。（携帯の空メール連携なんかは良くやりますね。）</p>
<p>大事なところはここ。</p>
<blockquote><p>プログラム名の前にあるパス名は全て取り除かれるため、 ``/usr/bin/vacation'', ``/home/server/mydir/bin/vacation'', ``vacation'' などは全て ``/usr/libexec/sm.bin/vacation'' と解釈されます。<br />
<br />
<a href="http://www.linux.or.jp/JM/html/sendmail/man8/smrsh.8.html" target="_blank">Manpage of SMRSH</a>
</p></blockquote>
<p>.forwardで起動するコマンドのパスだけを書き換えてもファイル名しか見てないので意味がありません。</p>
<h3>元の設定</h3>
<p>例えば、これまで起動していたコマンドが[/path/to/old/command]とします。</p>
<p>.forwardは以下な感じ。</p>
<div class="igBar"><span id="lcode-100"><a href="#" onclick="javascript:showPlainTxt('code-100'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-100">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">|/path/to/old/command </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>/etc/smrshにはシンボリックリンクが張られています。</p>
<pre style="background-color: #000; padding: 10px; color: #fff;">
# ln -s /path/to/old/command /etc/smrsh/command
</pre>
<h3>起動コマンドパスの変更</h3>
<p>何らかの事情でcommandコマンドのパスが変わって、[/path/to/new/command]になったとします。</p>
<p>当然ながら.forwardの起動コマンドパスを書き換えます。</p>
<div class="igBar"><span id="lcode-101"><a href="#" onclick="javascript:showPlainTxt('code-101'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-101">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">|/path/to/new/command </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>これでokと思って、メールとの連携をするとなぜか[/path/to/<b>old</b>/command]が実行されます。</p>
<p>おかしいと思って/var/log/maillogを見ると、ちゃんと[/path/to/<b>new</b>/command]が実行されているログが残っています。</p>
<div class="igBar"><span id="lcode-102"><a href="#" onclick="javascript:showPlainTxt('code-102'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-102">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">Jan <span style="color:#800000;color:#800000;">12</span> <span style="color:#800000;color:#800000;">18</span>:<span style="color:#800000;color:#800000;">22</span>:<span style="color:#800000;color:#800000;">30</span> user sendmail<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#800000;color:#800000;">12152</span><span style="color:#006600; font-weight:bold;">&#93;</span>: xxxxxxxxxxxxxxxxx: to=|/path/to/new/command ... </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>[/path/to/new/command]が実行されるはずで、ログにも記録されているのに、なぜか[/path/to/old/command]が実行される。なんで？なんで？となるわけです。</p>
<p>実はsmrshでは冒頭の引用のとおり.forwardに書いてある起動コマンドのパスなんか見ちゃあいないんですね。見ているのはファイル名だけで、結局は/etc/smrshにある同名のコマンドを実行するだけだと。</p>
<p>つまりこの場合は/etc/smrsh/にあるシンボリックリンクを書き換えないとダメなんですね。</p>
<pre style="background-color: #000; padding: 10px; color: #fff;">
# rm /etc/smrsh/command
# ln -s /path/to/new/command /etc/smrsh/command
</pre>
<p>これで[/path/to/new/command]が新たに起動するようになります。</p>
<h3>あまり無いことなんで</h3>
<p>はまります。たまにしかやらないので今回もはまりました。。。</p>
<p>ここに書いて次こそ忘れないように。</p>

<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/jp/shinxblog?a=ydMmZyUDSbM:esLVW_U-ywA:spdCosxkSQE"><img src="http://feeds.feedburner.com/~ff/jp/shinxblog?d=spdCosxkSQE" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/jp/shinxblog?a=ydMmZyUDSbM:esLVW_U-ywA:OAQBO0PjnPA"><img src="http://feeds.feedburner.com/~ff/jp/shinxblog?d=OAQBO0PjnPA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/jp/shinxblog/~4/ydMmZyUDSbM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.1x1.jp/blog/2010/01/sendmail_smrsh.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.1x1.jp/blog/2010/01/sendmail_smrsh.html</feedburner:origLink></item>
		<item>
		<title>Google App Engineを使ったサイトを調べる方法</title>
		<link>http://feedproxy.google.com/~r/jp/shinxblog/~3/zDgHCsihMjk/website_use_gae.html</link>
		<comments>http://www.1x1.jp/blog/2010/01/website_use_gae.html#comments</comments>
		<pubDate>Wed, 06 Jan 2010 09:39:01 +0000</pubDate>
		<dc:creator>shinbara</dc:creator>
				<category><![CDATA[Google App Engine(GAE)]]></category>

		<guid isPermaLink="false">http://www.1x1.jp/blog/?p=1538</guid>
		<description><![CDATA[
Google App Engine（GAE）が盛り上がってきてますね。
今後増えて行くであろうGAEを使ったサイトを判別する方法です。

そうは言っても何も特殊なことをするのでは無く、単にHTTPレスポンスヘッダを見るだけです。



GAEを使ったサイトは「Server: Google Frontend」が返ってくる、というの話でした。

]]></description>
			<content:encoded><![CDATA[
<p>Google App Engine（GAE）が盛り上がってきてますね。</p>
<p>今後増えて行くであろうGAEを使ったサイトを判別する方法です。</p>
<p><img src="http://www.1x1.jp/blog/wp-content/uploads/2010/01/gae_logo.png" alt="" title="gae_logo" width="154" height="133" class="alignright size-full wp-image-1541" /></p>
<p>そうは言っても何も特殊なことをするのでは無く、単にHTTPレスポンスヘッダを見るだけです。</p>
<p>
<img src="http://www.1x1.jp/blog/wp-content/uploads/2010/01/gae_http_response_header.png" alt="" title="gae_http_response_header" width="297" height="177" class="alignright size-full wp-image-1543" />
</p>
<p>GAEを使ったサイトは「Server: Google Frontend」が返ってくる、というの話でした。</p>

<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/jp/shinxblog?a=zDgHCsihMjk:d0I1uINWuNY:spdCosxkSQE"><img src="http://feeds.feedburner.com/~ff/jp/shinxblog?d=spdCosxkSQE" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/jp/shinxblog?a=zDgHCsihMjk:d0I1uINWuNY:OAQBO0PjnPA"><img src="http://feeds.feedburner.com/~ff/jp/shinxblog?d=OAQBO0PjnPA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/jp/shinxblog/~4/zDgHCsihMjk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.1x1.jp/blog/2010/01/website_use_gae.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.1x1.jp/blog/2010/01/website_use_gae.html</feedburner:origLink></item>
		<item>
		<title>2009年Twitterユーザに最も使われたプログラム言語は？</title>
		<link>http://feedproxy.google.com/~r/jp/shinxblog/~3/zanQryCzWv0/code2009_in_twitter.html</link>
		<comments>http://www.1x1.jp/blog/2010/01/code2009_in_twitter.html#comments</comments>
		<pubDate>Sat, 02 Jan 2010 04:06:02 +0000</pubDate>
		<dc:creator>shinbara</dc:creator>
				<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://www.1x1.jp/blog/?p=1514</guid>
		<description><![CDATA[
2009年に書いたプログラム言語を列挙する企画がTwitterで開催されています。

参加する
方法は簡単でハッシュタグ「#code2009」を付けて、2009年に書いたプログラム言語をカンマ区切り並べるだけです。
例えば私なら、こう。


集計を見る
postしたtweetはこちらのサイトで集計されます。
http://www.ioncannon.net/projects/code2009/
集計結果は4つのグラフでまとめられます。
例えばこんな感じ。


最も使われたのはJavaScript
2009年、Twitterユーザに一番使われている言語は「JavaScript」でした。（2010/01/02現在）
2位以下は「Ruby」「Java」「Python」「PHP」と続いています。
ちなみにプログラム言語のランキングとしておなじみのTIOBE Software（2009/12）では、一位が「Java」で、「C」「PHP」「C++」「VB」となっています。
Twitterユーザのランキングを見るとWebシステムで良く使われる言語が並んでいるので、やはりTwitterユーザにはWeb系の人が多いという当然の結果ですね。
まだpostしていない方は2009年のふりかえりに参加してみてはどうでしょう。

]]></description>
			<content:encoded><![CDATA[
<p>2009年に書いたプログラム言語を列挙する企画がTwitterで開催されています。</p>
<p><a href="http://www.ioncannon.net/projects/code2009/" target="_blank"><img src="http://www.1x1.jp/blog/wp-content/uploads/2010/01/code2009_pie.png" alt="" title="code2009_pie" width="282" height="243" class="alignright size-full wp-image-1521" /></a></p>
<h3>参加する</h3>
<p>方法は簡単でハッシュタグ「<a href="http://search.twitter.com/search?q=%23code2009" target="_blank">#code2009</a>」を付けて、2009年に書いたプログラム言語をカンマ区切り並べるだけです。</p>
<p>例えば私なら、こう。</p>
<p>
<a href="http://twitter.com/shin1x1/status/7269012800" target="_blank"><img src="http://www.1x1.jp/blog/wp-content/uploads/2010/01/code2009_my_tweet-1.png" alt="" title="code2009_my_tweet-1" width="497" height="100" class="alignright size-full wp-image-1519" /></a></p>
<h3>集計を見る</h3>
<p>postしたtweetはこちらのサイトで集計されます。<br />
<a href="http://www.ioncannon.net/projects/code2009/" target="_blank">http://www.ioncannon.net/projects/code2009/</a></p>
<p>集計結果は4つのグラフでまとめられます。</p>
<p>例えばこんな感じ。</p>
<p>
<a href="http://www.ioncannon.net/projects/code2009/" target="_blank"><img src="http://www.1x1.jp/blog/wp-content/uploads/2010/01/code2009_the_top_15_language.png" alt="" title="code2009_the_top_15_language" width="381" height="266" class="alignright size-full wp-image-1524" /></a></p>
<h3>最も使われたのはJavaScript</h3>
<p>2009年、Twitterユーザに一番使われている言語は「JavaScript」でした。（2010/01/02現在）</p>
<p>2位以下は「Ruby」「Java」「Python」「PHP」と続いています。</p>
<p>ちなみにプログラム言語のランキングとしておなじみの<a href="http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html" target="_blank">TIOBE Software（2009/12）</a>では、一位が「Java」で、「C」「PHP」「C++」「VB」となっています。</p>
<p>Twitterユーザのランキングを見るとWebシステムで良く使われる言語が並んでいるので、やはりTwitterユーザにはWeb系の人が多いという当然の結果ですね。</p>
<p>まだpostしていない方は2009年のふりかえりに参加してみてはどうでしょう。</p>

<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/jp/shinxblog?a=zanQryCzWv0:BeseHwXr8Vw:spdCosxkSQE"><img src="http://feeds.feedburner.com/~ff/jp/shinxblog?d=spdCosxkSQE" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/jp/shinxblog?a=zanQryCzWv0:BeseHwXr8Vw:OAQBO0PjnPA"><img src="http://feeds.feedburner.com/~ff/jp/shinxblog?d=OAQBO0PjnPA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/jp/shinxblog/~4/zanQryCzWv0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.1x1.jp/blog/2010/01/code2009_in_twitter.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.1x1.jp/blog/2010/01/code2009_in_twitter.html</feedburner:origLink></item>
		<item>
		<title>2009年ふりかえり&amp;2010年もよろしくお願いします</title>
		<link>http://feedproxy.google.com/~r/jp/shinxblog/~3/7xE7hdDyNEI/2009_to_2010.html</link>
		<comments>http://www.1x1.jp/blog/2010/01/2009_to_2010.html#comments</comments>
		<pubDate>Fri, 01 Jan 2010 16:12:04 +0000</pubDate>
		<dc:creator>shinbara</dc:creator>
				<category><![CDATA[雑記]]></category>

		<guid isPermaLink="false">http://www.1x1.jp/blog/?p=1501</guid>
		<description><![CDATA[
あけましておめでとうございます。
2009年が終わり、2010年となりました。
旧年中は、このblogやTwitter、イベント等々でお世話になり、本当にありがとうございました。
過ぎ去った2009年に行った活動をざっくりとまとめたいと思います。
つくったもの

ATND 参加イベントサーチを作りました
Twitter フォローokな人を探す「follow ok」を作りました
シンプルなTwitter検索「findTwitter」を作りました＆ソース公開
CakePHP日本語情報をつぶやくTwitter botを作りました
御座候のTwitter botを作りました &#124; Shin x blog
Ustream 録画動画のviewsをはてブ風に表示する

きちんとしたWebサービスらしいものはfollow okくらいですね。follow okは今も登録ユーザさんが増えていて、2009年末時点で2400人の方に登録頂いています。やっぱり作ったものを使って頂けるのは嬉しいことです。
執筆したもの

「CakePHPによる実践Webアプリケーション開発」が出ます
CakePHP1.2ガイドブックが出ます

CakePHP関連の書籍を2冊、共著で執筆しました。
実践本はほんの一部しか関わっていないのですが、各所で良い評判を聞いていて有り難い限りです。ありがとうございます。
参加した勉強会、イベント

CakePHP勉強会@福岡に参加しました&#038;発表資料[発表]
第4回CakePHP勉強会@Tokyoが終了しました＆発表資料[運営/発表]
第2回CakePHP関西勉強会も盛り上がりました＆発表資料[運営/発表]
CSS Nite in Osakaで感じた勉強会との違い
Flex4勉強会第76回＠大阪に参加してきました
JUI 2009 ReturnsとOSC 2009 Kansaiに参加してきました
CakePHP Cafe LiveTalkが無事に終了しました。[発表]
ドキュメント勉強会がアツく終了しました[運営/発表]
PHPカンファレンスで「PHPを見える化する」を発表しました[発表]
WordCamp KyotoでLTしてきます[発表]
CakeMatsuriが盛況のままに終了しました！[運営/発表]
PostgreSQL Conference 2009 Japanで発表してきました。[発表]
関西アンカンファレンスを開催しました＆運営してわかったこと

この中で印象に残っているのはPHPカンファレンスでの発表です。
今のように勉強会に関わる以前は、PHPカンファレンスでの発表は遠い世界のことのような気がしていました。今年はその壇上で発表ができ、また聞いて頂いた方に声をかけて頂き、本当にやってきて良かったなと思いました。
さらにCakeMatsuri、PostgreSQLカンファレンスでの発表と続くこの三ヶ月は自分の中では大きなもので、これまでのコミュニティ活動の集大成ともいえるものでした。10thPHPカンファレンスと10thPostgreSQLカンファレンスの両方で発表したのは自分くらいなので、それも密かに嬉しかったっりしてます:-D
他にも、ジュンク堂さんで行ったCakePHP Cafe LiveTalkや、ドキュメント勉強会、関西アンカンファレンスとこれまでやったことの無いイベントをできたのも収穫でしたね。
すっかり勉強会やイベントの魅力にとりつかれた一年でした。これは2010年も継続していきたいです。
2009年は
なんといっても2009年は「勉強会、イベントの年」でした。
これほど勉強会やイベントに関わる年は今までありませんでした。イベントに関われば関わるほど、さらにやりたいことが出てきて深く関わるという良い（？）循環になりましたね。
PostgreSQLカンファレンスが終わった11月は、さすがにイベントはもうしばらくいいか、と思っていたのですが、数日もするとイベントがやりたくなり、結局関西アンカンファレンスを開催することになりました。
みんなで楽しめるイベントは自分の性に合っているのかもしれません。OSS・IT業界への参加、還元の方法として、コードを書くということだけでなく、イベントを開催する・盛り上げる・発表するというのも1つの方法かなと考えたりもしています。
2010年は
2009年で加速したイベントへの関わりをさらに深くしていきたいと思います。
具体的にはこれまでどおり、イベント開催や発表、参加するのももちろんですが、イベント運営用のシステム開発を考えています。
現在もATNDをはじめ様々なイベント管理システム（サービス）が展開されています。しかし実際に開催する側からするとバッチリはまるサービスが無かったりもします。特に参加費の集金についてはシステムで対応しているサービスは国内では見かけません。
実際に使う人が嬉しいシステムを作りたいと考えているので、開発が動き出した際はご要望等々頂ければ嬉しいです。
ということで、今年も色々と活動していきたいと思うので、よろしくお願いします！

]]></description>
			<content:encoded><![CDATA[
<p>あけましておめでとうございます。</p>
<p>2009年が終わり、2010年となりました。</p>
<p>旧年中は、このblogやTwitter、イベント等々でお世話になり、本当にありがとうございました。</p>
<p>過ぎ去った2009年に行った活動をざっくりとまとめたいと思います。</p>
<h3>つくったもの</h3>
<ul>
<li><a href="http://www.1x1.jp/blog/2009/07/atnd_euser.html" target="_blank">ATND 参加イベントサーチを作りました</a><img src="http://b.hatena.ne.jp/entry/image/small/http://www.1x1.jp/blog/2009/07/atnd_euser.html"/></li>
<li><a href="http://www.1x1.jp/blog/2009/08/twitter_follow_ok.html" target="_blank">Twitter フォローokな人を探す「follow ok」を作りました</a><img src="http://b.hatena.ne.jp/entry/image/small/http://www.1x1.jp/blog/2009/08/twitter_follow_ok.html"/></li>
<li><a href="http://www.1x1.jp/blog/2009/08/find_twitter.html" target="_blank">シンプルなTwitter検索「findTwitter」を作りました＆ソース公開</a><img src="http://b.hatena.ne.jp/entry/image/small/http://www.1x1.jp/blog/2009/08/find_twitter.html"/></li>
<li><a href="http://www.1x1.jp/blog/2009/11/twitter_bot_cakephp_jp.html" target="_blank">CakePHP日本語情報をつぶやくTwitter botを作りました</a><img src="http://b.hatena.ne.jp/entry/image/small/http://www.1x1.jp/blog/2009/11/twitter_bot_cakephp_jp.html"/></li>
<li><a href="http://www.1x1.jp/blog/2009/12/twitter_bot_gozasoro.html" target="_blank">御座候のTwitter botを作りました | Shin x blog</a><img src="http://b.hatena.ne.jp/entry/image/small/http://www.1x1.jp/blog/2009/12/twitter_bot_gozasoro.html"/></li>
<li><a href="http://www.1x1.jp/blog/2009/12/u-st_tv_views.html" target="_blank">Ustream 録画動画のviewsをはてブ風に表示する</a><img src="http://b.hatena.ne.jp/entry/image/small/http://www.1x1.jp/blog/2009/12/u-st_tv_views.html"/></li>
</ul>
<p>きちんとしたWebサービスらしいものはfollow okくらいですね。follow okは今も登録ユーザさんが増えていて、2009年末時点で2400人の方に登録頂いています。やっぱり作ったものを使って頂けるのは嬉しいことです。</p>
<h3>執筆したもの</h3>
<ul>
<li><a href="http://www.1x1.jp/blog/2009/03/book_cakephp_application.html" target="_blank">「CakePHPによる実践Webアプリケーション開発」が出ます</a><img src="http://b.hatena.ne.jp/entry/image/small/http://www.1x1.jp/blog/2009/03/book_cakephp_application.html"/></li>
<li><a href="http://www.1x1.jp/blog/2009/06/cakephp_12_guidebook.html" target="_blank">CakePHP1.2ガイドブックが出ます</a><img src="http://b.hatena.ne.jp/entry/image/small/http://www.1x1.jp/blog/2009/06/cakephp_12_guidebook.html"/></li>
</ul>
<p>CakePHP関連の書籍を2冊、共著で執筆しました。</p>
<p>実践本はほんの一部しか関わっていないのですが、各所で良い評判を聞いていて有り難い限りです。ありがとうございます。</p>
<h3>参加した勉強会、イベント</h3>
<ul>
<li><a href="http://www.1x1.jp/blog/2009/03/event_cakephp_fukuoka_20090313_report.html" target="_blank">CakePHP勉強会@福岡に参加しました&#038;発表資料</a><img src="http://b.hatena.ne.jp/entry/image/small/http://www.1x1.jp/blog/2009/03/event_cakephp_fukuoka_20090313_report.html"/>[発表]</li>
<li><a href="http://www.1x1.jp/blog/2009/05/event_cakephp_20090522_report.html" target="_blank">第4回CakePHP勉強会@Tokyoが終了しました＆発表資料</a><img src="http://b.hatena.ne.jp/entry/image/small/http://www.1x1.jp/blog/2009/05/event_cakephp_20090522_report.html"/>[運営/発表]</li>
<li><a href="http://www.1x1.jp/blog/2009/06/event_cakephp_kansai_20090605_report.html" target="_blank">第2回CakePHP関西勉強会も盛り上がりました＆発表資料</a><img src="http://b.hatena.ne.jp/entry/image/small/http://www.1x1.jp/blog/2009/06/event_cakephp_kansai_20090605_report.html"/>[運営/発表]</li>
<li><a href="http://www.1x1.jp/blog/2009/06/css_nite_in_osaka_vol_16_report.html" target="_blank">CSS Nite in Osakaで感じた勉強会との違い</a><img src="http://b.hatena.ne.jp/entry/image/small/http://www.1x1.jp/blog/2009/06/css_nite_in_osaka_vol_16_report.html"/></li>
<li><a href="http://www.1x1.jp/blog/2009/07/flex4_evnet_76.html" target="_blank">Flex4勉強会第76回＠大阪に参加してきました</a><img src="http://b.hatena.ne.jp/entry/image/small/http://www.1x1.jp/blog/2009/07/flex4_evnet_76.html"/></li>
<li><a href="http://www.1x1.jp/blog/2009/07/event_jui2009_osc200.html" target="_blank">JUI 2009 ReturnsとOSC 2009 Kansaiに参加してきました</a><img src="http://b.hatena.ne.jp/entry/image/small/http://www.1x1.jp/blog/2009/07/event_jui2009_osc200.html"/></li>
<li><a href="http://www.1x1.jp/blog/2009/07/cakephp_cafe_talk_live_report.html" target="_blank">CakePHP Cafe LiveTalkが無事に終了しました。</a><img src="http://b.hatena.ne.jp/entry/image/small/http://www.1x1.jp/blog/2009/03/event_cakephp_fukuoka_20090313_report.html"/>[発表]</li>
<li><a href="http://www.1x1.jp/blog/2009/08/event_document_report.html" target="_blank">ドキュメント勉強会がアツく終了しました</a><img src="http://b.hatena.ne.jp/entry/image/small/http://www.1x1.jp/blog/2009/08/event_document_report.html"/>[運営/発表]</li>
<li><a href="http://www.1x1.jp/blog/2009/09/event_php_conference_10.html" target="_blank">PHPカンファレンスで「PHPを見える化する」を発表しました</a><img src="http://b.hatena.ne.jp/entry/image/small/http://www.1x1.jp/blog/2009/09/event_php_conference_10.html"/>[発表]</li>
<li><a href="http://www.1x1.jp/blog/2009/10/wordcamp_kyoto_pre.html" target="_blank">WordCamp KyotoでLTしてきます</a><img src="http://b.hatena.ne.jp/entry/image/small/http://www.1x1.jp/blog/2009/10/wordcamp_kyoto_pre.html"/>[発表]</li>
<li><a href="http://www.1x1.jp/blog/2009/11/event_cakematsuri_report.html" target="_blank">CakeMatsuriが盛況のままに終了しました！</a><img src="http://b.hatena.ne.jp/entry/image/small/http://www.1x1.jp/blog/2009/03/event_cakephp_fukuoka_20090313_report.html"/>[運営/発表]</li>
<li><a href="http://www.1x1.jp/blog/2009/11/pgcon2009.html" target="_blank">PostgreSQL Conference 2009 Japanで発表してきました。</a><img src="http://b.hatena.ne.jp/entry/image/small/http://www.1x1.jp/blog/2009/11/pgcon2009.html"/>[発表]</li>
<li><a href="http://www.1x1.jp/blog/2009/12/kansai_unconference_.html" target="_blank">関西アンカンファレンスを開催しました＆運営してわかったこと</a><img src="http://b.hatena.ne.jp/entry/image/small/http://www.1x1.jp/blog/2009/12/kansai_unconference_.html"/></li>
</ul>
<p>この中で印象に残っているのはPHPカンファレンスでの発表です。</p>
<p>今のように勉強会に関わる以前は、PHPカンファレンスでの発表は遠い世界のことのような気がしていました。今年はその壇上で発表ができ、また聞いて頂いた方に声をかけて頂き、本当にやってきて良かったなと思いました。</p>
<p>さらにCakeMatsuri、PostgreSQLカンファレンスでの発表と続くこの三ヶ月は自分の中では大きなもので、これまでのコミュニティ活動の集大成ともいえるものでした。10thPHPカンファレンスと10thPostgreSQLカンファレンスの両方で発表したのは自分くらいなので、それも密かに嬉しかったっりしてます:-D</p>
<p>他にも、ジュンク堂さんで行ったCakePHP Cafe LiveTalkや、ドキュメント勉強会、関西アンカンファレンスとこれまでやったことの無いイベントをできたのも収穫でしたね。</p>
<p>すっかり勉強会やイベントの魅力にとりつかれた一年でした。これは2010年も継続していきたいです。</p>
<h3>2009年は</h3>
<p>なんといっても2009年は「勉強会、イベントの年」でした。</p>
<p>これほど勉強会やイベントに関わる年は今までありませんでした。イベントに関われば関わるほど、さらにやりたいことが出てきて深く関わるという良い（？）循環になりましたね。</p>
<p>PostgreSQLカンファレンスが終わった11月は、さすがにイベントはもうしばらくいいか、と思っていたのですが、数日もするとイベントがやりたくなり、結局関西アンカンファレンスを開催することになりました。</p>
<p>みんなで楽しめるイベントは自分の性に合っているのかもしれません。OSS・IT業界への参加、還元の方法として、コードを書くということだけでなく、イベントを開催する・盛り上げる・発表するというのも1つの方法かなと考えたりもしています。</p>
<h3>2010年は</h3>
<p>2009年で加速したイベントへの関わりをさらに深くしていきたいと思います。</p>
<p>具体的にはこれまでどおり、イベント開催や発表、参加するのももちろんですが、イベント運営用のシステム開発を考えています。</p>
<p>現在もATNDをはじめ様々なイベント管理システム（サービス）が展開されています。しかし実際に開催する側からするとバッチリはまるサービスが無かったりもします。特に参加費の集金についてはシステムで対応しているサービスは国内では見かけません。</p>
<p>実際に使う人が嬉しいシステムを作りたいと考えているので、開発が動き出した際はご要望等々頂ければ嬉しいです。</p>
<p>ということで、今年も色々と活動していきたいと思うので、よろしくお願いします！</p>

<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/jp/shinxblog?a=7xE7hdDyNEI:sERN96lzmTY:spdCosxkSQE"><img src="http://feeds.feedburner.com/~ff/jp/shinxblog?d=spdCosxkSQE" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/jp/shinxblog?a=7xE7hdDyNEI:sERN96lzmTY:OAQBO0PjnPA"><img src="http://feeds.feedburner.com/~ff/jp/shinxblog?d=OAQBO0PjnPA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/jp/shinxblog/~4/7xE7hdDyNEI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.1x1.jp/blog/2010/01/2009_to_2010.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.1x1.jp/blog/2010/01/2009_to_2010.html</feedburner:origLink></item>
	</channel>
</rss>
