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

<channel>
	<title>ハセテツラボ &#187; PHP</title>
	<atom:link href="http://tt-house.com/tag/php/feed" rel="self" type="application/rss+xml" />
	<link>http://tt-house.com</link>
	<description>生涯一開発屋</description>
	<lastBuildDate>Wed, 08 Sep 2010 23:42:04 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>iPhoneアプリ第二弾をリリースしました</title>
		<link>http://tt-house.com/2010/09/my-iphone-app-2nd.html</link>
		<comments>http://tt-house.com/2010/09/my-iphone-app-2nd.html#comments</comments>
		<pubDate>Fri, 03 Sep 2010 13:42:27 +0000</pubDate>
		<dc:creator>ハセテツ</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://tt-house.com/?p=359</guid>
		<description><![CDATA[告知が遅くなりましたが、iPhoneアプリの第二弾をリリースしました。その名も「Calculate10」。連続して表示される10個の数字を計算していくだけのアプリです。 単純だけど、なかなか難しいですよ。まぁ経理をやっている友人にハードモードを瞬殺されましたが。ｗ 日本人はそろばんやってるひとが多いので、そういう人には簡単みたいです。 現在、すでに「スーパーハード」と「ベリーベリーハード」なモードの追加中です。 ぜひお試しください。]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftt-house.com%252F2010%252F09%252Fmy-iphone-app-2nd.html%22%2C%20%22shorturl%22%3A%20%22http%3A%2F%2Fbit.ly%2Fc3Ajja%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22iPhone%E3%82%A2%E3%83%97%E3%83%AA%E7%AC%AC%E4%BA%8C%E5%BC%BE%E3%82%92%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F%22%20%7D);"></div>
<p>告知が遅くなりましたが、iPhoneアプリの第二弾をリリースしました。その名も<a title="Calculate10" href="http://itunes.apple.com/jp/app/calculate10/id385097104?mt=8" target="_blank">「Calculate10」</a>。連続して表示される10個の数字を計算していくだけのアプリです。</p>
<p>単純だけど、なかなか難しいですよ。まぁ経理をやっている友人にハードモードを瞬殺されましたが。ｗ</p>
<p>日本人はそろばんやってるひとが多いので、そういう人には簡単みたいです。</p>
<p><a href="http://tt-house.com/wp-content/uploads/2010/08/Screenshot-2010.07.28-00.07.08.png"><img class="alignnone size-thumbnail wp-image-352" title="Screenshot-2010.07.28-00.07.08" src="http://tt-house.com/wp-content/uploads/2010/08/Screenshot-2010.07.28-00.07.08-150x150.png" alt="" width="150" height="150" /></a> <a href="http://tt-house.com/wp-content/uploads/2010/08/Screenshot-2010.07.28-00.08.26.png"><img class="alignnone size-thumbnail wp-image-353" title="Screenshot-2010.07.28-00.08.26" src="http://tt-house.com/wp-content/uploads/2010/08/Screenshot-2010.07.28-00.08.26-150x150.png" alt="" width="150" height="150" /></a></p>
<p>現在、すでに「スーパーハード」と「ベリーベリーハード」なモードの追加中です。</p>
<p>ぜひお試しください。</p>

]]></content:encoded>
			<wfw:commentRss>http://tt-house.com/2010/09/my-iphone-app-2nd.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SmartyでArrayの内容を出力する</title>
		<link>http://tt-house.com/2010/07/smarty-print_r.html</link>
		<comments>http://tt-house.com/2010/07/smarty-print_r.html#comments</comments>
		<pubDate>Tue, 13 Jul 2010 03:14:19 +0000</pubDate>
		<dc:creator>ハセテツ</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Smarty]]></category>

		<guid isPermaLink="false">http://tt-house.com/?p=318</guid>
		<description><![CDATA[PHPではprint_rでArrayの内容を出力できますが、smartyの場合どうしたらよいものかと。まぁループして書き出せばよいのですが、それは面倒だなと。 {$array&#124;@debug_print_var} これで出力できます。簡単ですね。 最近ものすごく久しぶりにPHPを書いていますが、Array関連のメソッドが非常に豊富で、便利だなぁと。]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftt-house.com%252F2010%252F07%252Fsmarty-print_r.html%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Smarty%E3%81%A7Array%E3%81%AE%E5%86%85%E5%AE%B9%E3%82%92%E5%87%BA%E5%8A%9B%E3%81%99%E3%82%8B%22%20%7D);"></div>
<p>PHPではprint_rでArrayの内容を出力できますが、smartyの場合どうしたらよいものかと。まぁループして書き出せばよいのですが、それは面倒だなと。</p>
<blockquote><p>{$array|@debug_print_var}</p></blockquote>
<p>これで出力できます。簡単ですね。</p>
<p>最近ものすごく久しぶりにPHPを書いていますが、Array関連のメソッドが非常に豊富で、便利だなぁと。</p>

]]></content:encoded>
			<wfw:commentRss>http://tt-house.com/2010/07/smarty-print_r.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHPとRubyとPythonのパフォーマンスを比較してみました</title>
		<link>http://tt-house.com/2010/05/php-ruby-python-2.html</link>
		<comments>http://tt-house.com/2010/05/php-ruby-python-2.html#comments</comments>
		<pubDate>Tue, 11 May 2010 02:44:50 +0000</pubDate>
		<dc:creator>ハセテツ</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://tt-house.com/?p=286</guid>
		<description><![CDATA[同じような処理をさせた場合、PHP、Ruby、Pythonでどの言語が一番早いのか。非常に気になるところでありますが、試したことがありませんでした。今回試してみたところ、意外な結果が出たのです。]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftt-house.com%252F2010%252F05%252Fphp-ruby-python-2.html%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22PHP%E3%81%A8Ruby%E3%81%A8Python%E3%81%AE%E3%83%91%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%B3%E3%82%B9%E3%82%92%E6%AF%94%E8%BC%83%E3%81%97%E3%81%A6%E3%81%BF%E3%81%BE%E3%81%97%E3%81%9F%22%20%7D);"></div>
<p><a title="RubyとPythonについて考えてみました" href="http://tt-house.com/2010/04/think-about-ruby-python.html" target="_blank">前回のエントリ</a>が結局フレームワークの話になってしまったため、新しいエントリを書きました。</p>
<p>同じような処理をさせた場合、どの言語が一番早いのか。非常に気になるところでありますが、試したことがありませんでした。今回試してみたところ、意外な結果が出たのです。</p>
<p>下の方に書いたそれぞれのプログラムを実行した結果の、プログラム内部で計測したミリ秒を比較してます。</p>
<table class="post">
<tbody>
<tr>
<th>PHP</th>
<th>Ruby</th>
<th>Python</th>
</tr>
<tr>
<td>2.80秒</td>
<td>0.36秒</td>
<td>0.93秒</td>
</tr>
</tbody>
</table>
<p>3回計測した平均です。同じ処理をさせるプログラムを書いたつもりですが、本当にフェアなものになっているのか正直自信がありません。そもそもPHPはWebアプリを主な目的としているとのことなので、こういう処理は得意としていないのかもしれない。</p>
<p>また、それぞれのプログラムのループ内2行目、文字列連結の部分をコメントアウトして実行してみると、これまた意外な結果が出ました。</p>
<table class="post">
<tbody>
<tr>
<th>PHP</th>
<th>Ruby</th>
<th>Python</th>
</tr>
<tr>
<td>0.07秒</td>
<td>0.06秒</td>
<td>0.39秒</td>
</tr>
</tbody>
</table>
<p>PHPは文字列連結が苦手なんだろうか。暗黙的な型変換にコストがかかるのだろうか、等々考えてしまいます。それとも秒を求める部分がネックなんですかね。その辺は今後追っていきます。</p>
<p>ただ、これまでPythonの方がRubyより早い、と思っていたために自分の無知さに猛烈に恥ずかしい思いをしています。</p>
<p>実際にMySQLと連携するバッチを書いたときにはRubyの方が遅かったり、Railsアプリがもっさりだったり、「速い」という印象がまったくありませんでした。が、それはある特定の面しかみていない上での思い込みだったのかもしれません。</p>
<p>これはRailsが遅いのか、もしくはMySQL/Rubyが遅いのか。当時の書き方がマズかったのか。今後、いろんなケースでこういった比較をしてみようかと。</p>
<p>今回の検証がすべてではないし、これが答えだとも思っていません。また、そういう意図を含んだエントリではありません。今回の検証だって、特定の面しか見ていません。が、あまりに意外な結果だったため、自戒の念を含めてブログに書きました。</p>
<p>「こう書くともっとフェアだよ」「こういうテストの方がいいんじゃない」等、アドバイスいただけるとうれしいです。</p>
<p>フレームワークまで含めた検証した方が現実的なのだろうか。。。</p>
<hr /><strong>PHP</strong></p>
<blockquote><p>#!/usr/bin/php<br />
&lt;?<br />
function microtime_float()<br />
{</p>
<p style="padding-left: 30px;">list($usec, $sec) = explode(&#8221; &#8220;, microtime());<br />
return ((float)$usec + (float)$sec);</p>
<p>}<br />
$_start = microtime_float();<br />
$_sec = date(&#8216;s&#8217;);</p>
<p>for($i=1;$i&lt;100000;$i++)<br />
{</p>
<p style="padding-left: 30px;">$_val = (mt_rand(0, 100) + $i) / $i;<br />
$_str = $_val.date(&#8216;s&#8217;);</p>
<p>}</p>
<p>echo microtime_float() &#8211; $_start;<br />
?&gt;</p></blockquote>
<p><strong>Ruby</strong></p>
<blockquote><p>#! /usr/local/bin/ruby</p>
<p>i=1<br />
_start = Time.now</p>
<p>99999.times do</p>
<p style="padding-left: 30px;">_val = rand(100) / i<br />
_str = _val.to_s + Time.now.sec.to_s<br />
i += 1</p>
<p>end</p>
<p>p (Time.now &#8211; _start).to_f</p></blockquote>
<p><strong>Python</strong></p>
<blockquote><p>#!/usr/bin/python<br />
# -*- coding: utf-8 -*-<br />
import datetime<br />
import random</p>
<p>_start = datetime.datetime.now()</p>
<p>for i in range(1, 100000):</p>
<p style="padding-left: 30px;">_val = random.randint(0, 100) / i<br />
_str = str(_val) + str(datetime.datetime.now().second)</p>
<p>print datetime.datetime.now() &#8211; _start</p></blockquote>
<hr />検証環境</p>
<p>CPU:Xeon 1.86GHz<br />
メモリ:2GB<br />
OS: CentOS5.4 32bit<br />
PHP:5.2.11<br />
Ruby:1.8.7<br />
Python:2.5.2</p>

]]></content:encoded>
			<wfw:commentRss>http://tt-house.com/2010/05/php-ruby-python-2.html/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>PHPの三項演算子</title>
		<link>http://tt-house.com/2009/11/php-1.html</link>
		<comments>http://tt-house.com/2009/11/php-1.html#comments</comments>
		<pubDate>Mon, 16 Nov 2009 21:44:12 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.tt-house.com//wp/?p=116</guid>
		<description><![CDATA[よく「スパゲッティの元だ」みたいな扱われ方をしますが、三項演算子はスパゲッティと...]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftt-house.com%252F2009%252F11%252Fphp-1.html%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22PHP%E3%81%AE%E4%B8%89%E9%A0%85%E6%BC%94%E7%AE%97%E5%AD%90%22%20%7D);"></div>
<p>よく「スパゲッティの元だ」みたいな扱われ方をしますが、三項演算子はスパゲッティとは関係ないんじゃないかなぁと個人的には思うわけですよ。</p>
<p>確かに多用し過ぎると可読性が著しく下がりますが、それがイコールスパゲッティになるとは思っていません。</p>
<p>やっぱり書く人に依存、っていうことですよね。</p>
<blockquote style="margin-right: 0px;" dir="ltr"><p>$_page = (is_numeric($_GET["page"]))? $_GET["page"]: 1;</p></blockquote>
<p>このまま使ってはいけない例ですが、</p>
<p>「pageっていうGETのパラメータが数値なら$_pageにはその値、数値じゃないなら$_pageには1を代入しなさい」</p>
<p>っていう内容です。</p>
<blockquote style="margin-right: 0px;" dir="ltr"><p>if(is_numeric($_GET["page"])){<br />
    $_page = $_GET["page"];<br />
}else{<br />
    $_page = 1;<br />
}</p></blockquote>
<p>と同じ結果ですね。</p>

]]></content:encoded>
			<wfw:commentRss>http://tt-house.com/2009/11/php-1.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHPでMySQLのload data infileを実行する</title>
		<link>http://tt-house.com/2009/08/phpmysqlload_data_infile.html</link>
		<comments>http://tt-house.com/2009/08/phpmysqlload_data_infile.html#comments</comments>
		<pubDate>Thu, 20 Aug 2009 16:03:27 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://www.tt-house.com//wp/?p=109</guid>
		<description><![CDATA[クエリで load data local infile 'ファイルパス' int...]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftt-house.com%252F2009%252F08%252Fphpmysqlload_data_infile.html%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22PHP%E3%81%A7MySQL%E3%81%AEload%20data%20infile%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B%22%20%7D);"></div>
<p>クエリで</p>
<blockquote style="MARGIN-RIGHT: 0px" dir="ltr">
<p>load data local infile &#8216;ファイルパス&#8217; into table テーブル名;</p>
</blockquote>
<p>を実行するだけなのですが、「local」をつけないと動いてくれなかったのでメモ。SSHでログインしていたときは「load data infile」だけでインポートできていたので、気がつかずに苦労しました。</p>

]]></content:encoded>
			<wfw:commentRss>http://tt-house.com/2009/08/phpmysqlload_data_infile.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rubyで書くか、PHPで書くか、それが問題だ</title>
		<link>http://tt-house.com/2009/07/ruby-or-php.html</link>
		<comments>http://tt-house.com/2009/07/ruby-or-php.html#comments</comments>
		<pubDate>Mon, 06 Jul 2009 17:31:40 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://www.tt-house.com//wp/?p=103</guid>
		<description><![CDATA[はっきりいって、やっぱりRubyは遅いです。Railsじゃなくて、Rubyが遅い...]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftt-house.com%252F2009%252F07%252Fruby-or-php.html%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Ruby%E3%81%A7%E6%9B%B8%E3%81%8F%E3%81%8B%E3%80%81PHP%E3%81%A7%E6%9B%B8%E3%81%8F%E3%81%8B%E3%80%81%E3%81%9D%E3%82%8C%E3%81%8C%E5%95%8F%E9%A1%8C%E3%81%A0%22%20%7D);"></div>
<p>はっきりいって、やっぱりRubyは遅いです。Railsじゃなくて、Rubyが遅いです。Rubyでループしまくってデータをインポートするバッチを書いたら、C#で同じ処理をさせたときの倍近くかかりました。（正確に計測していないので倍は言いすぎだと思うが、体感できるぐらい遅かった。今度PHPで同じコードを書いてみよう）</p>
<p>いわれてみれば書いてて気持ちいいし、Railsはらくちんです。しかし、ここまで遅いとは思っていなかった。ただ、遅いといってもフツーのWebアプリを開発する分にはそれほど大差は出ないのかもしれません。それでもやっぱりループ処理は遅いなぁ。イテレータのおかげでらくちんではあるのですが。</p>
<p>ORマッパーは、便利ですがやはり不安を常に感じてしまいます。ループ処理するときにはORマッパー任せにしないでfind_by_sqlで自分でSQLを書いちゃいます。そうしないと、100回のループで100件の問い合わせをされちゃいます。ここは外部結合使ってごっそり取ってきて欲しかった。まぁ、MySQLは外部結合するよりクエリ連打した方が早いからいいのかな。</p>
<p>ただし、ルーテイングは便利です。コントローラとアクションの管理がラクなので、あとからソースを追うときに非常にラクです。さらに、MVCの管理がすっきりしてます。</p>
<p>「それだけならCakePHPでもいいじゃないか」といわれそうですが、CakePHPはRubyonRailsより遅いというベンチを誰かのブログで拝見しました。いやー、アレ以上遅いのはさすがにパスかな。symfonyも同様みたいです。</p>
<p>小規模サイトで開発メンバーの入れ替わりがあるなら、フレームワークは必須でしょう。中規模以上になってもハードウェアに予算投入で解決できるならそれほど問題にはならないと思います。</p>
<p>予算が限られ、自社内コンテンツみたいに開発メンバーが限定されるのであれば、ピュアなPHPとSmarty、URLをきれいにしたければ（GETにだらだらつけたくなければ）mod_rewriteを使えばよいかと。</p>
<p>自社内コンテンツであっても、メンテナンスなどを考えるとフレームワークを導入した方がいい気もするのですが、サイトの成長計画と相談ですかねぇ。</p>
<p>あ、言語の話じゃなくてフレームワークの話になってきちゃった。</p>

]]></content:encoded>
			<wfw:commentRss>http://tt-house.com/2009/07/ruby-or-php.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHPで複数ページのPDFを分割して1ページごとの複数ファイルにする</title>
		<link>http://tt-house.com/2009/04/php-split-pdf.html</link>
		<comments>http://tt-house.com/2009/04/php-split-pdf.html#comments</comments>
		<pubDate>Wed, 15 Apr 2009 11:30:27 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.tt-house.com//wp/?p=95</guid>
		<description><![CDATA[FPDIを利用します。「フリーで使っていいよ」と書いてあるのにPayPalのボタ...]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftt-house.com%252F2009%252F04%252Fphp-split-pdf.html%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22PHP%E3%81%A7%E8%A4%87%E6%95%B0%E3%83%9A%E3%83%BC%E3%82%B8%E3%81%AEPDF%E3%82%92%E5%88%86%E5%89%B2%E3%81%97%E3%81%A61%E3%83%9A%E3%83%BC%E3%82%B8%E3%81%94%E3%81%A8%E3%81%AE%E8%A4%87%E6%95%B0%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AB%E3%81%99%E3%82%8B%22%20%7D);"></div>
<p><a href="http://www.setasign.de/products/pdf-php-solutions/fpdi/" target="_blank">FPDI</a>を利用します。「フリーで使っていいよ」と書いてあるのにPayPalのボタンが置いてあるのは、寄付はしてねっていうことですよね。会社のプロジェクトで利用することになったら経費で寄付してみようかと。</p>
<blockquote style="margin-right: 0px;" dir="ltr"><p>require &#8216;../var/fpdf/fpdi.php&#8217;;</p>
<p>$temp_pdf= new FPDI();<br />
$_page = $temp_pdf-&gt;setSourceFile(&#8216;../var/hoge.pdf&#8217;);<br />
unset($temp_pdf);</p>
<p>for($i=1;$i&lt;=$_page;$i++)<br />
{<br />
    $_write_pdf = new FPDI();<br />
    $_write_pdf-&gt;setSourceFile(&#8216;../var/hoge.pdf&#8217;);<br />
    $_tmp_info = $_write_pdf-&gt;importPage($i);<br />
    $_write_pdf-&gt;addPage();<br />
    $_write_pdf-&gt;useTemplate($_tmp_info);<br />
    $_write_pdf-&gt;Output(&#8220;hoge_&#8221;.$i.&#8221;.pdf&#8221;,&#8221;F&#8221;);<br />
    unset ($_write_pdf);<br />
}</p></blockquote>
<p dir="ltr">unsetにはあまり意味はない、というかムダかもしれません。closeやdisposeが見当たらなかったので微妙に気持ち悪かったから入れただけです。解放してくれているのかなぁ。</p>
<p dir="ltr">ページ数の取得のために一度テンプレートとして読み込み、それからページ数分でループしてます。ループ処理の中で「テンプレートファイルのiページ目だけ読み込んでファイル書き出し」を繰り返しています。</p>
<p dir="ltr">これでやりたいことはできたのですが、なんかメソッド一発で分割してくれるのがありそうで怖い。あったらどなたか教えてください。</p>
<p dir="ltr">FPDIは1.2、FPDFは1.53、PHPは5.2、WindowsXP上のApache2.0で動作確認しました。</p>

]]></content:encoded>
			<wfw:commentRss>http://tt-house.com/2009/04/php-split-pdf.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>PHPで文字列の桁埋め</title>
		<link>http://tt-house.com/2008/09/php.html</link>
		<comments>http://tt-house.com/2008/09/php.html#comments</comments>
		<pubDate>Tue, 30 Sep 2008 18:55:08 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.tt-house.com//wp/?p=65</guid>
		<description><![CDATA[「sprintf」を使うか「str_pad」を使うかが悩みどころです。今までは大...]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftt-house.com%252F2008%252F09%252Fphp.html%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22PHP%E3%81%A7%E6%96%87%E5%AD%97%E5%88%97%E3%81%AE%E6%A1%81%E5%9F%8B%E3%82%81%22%20%7D);"></div>
<p>「sprintf」を使うか「str_pad」を使うかが悩みどころです。今までは大して気にしてなかったのですが、どうやら「str_pad」の方が早いらしい。</p>
<p>ということで検証したのですが、あんまり変わんない。。。</p>
<p>まぁ所詮20万回程度のループだと大して差は出ないかな。とはいえ、実開発でそこまで大きな処理させるとも思えないし、ここはどっち使っても差はないということにしておきましょう。</p>
<p>使いやすい方でいいや。</p>
<p>str_pad使って「$_counter」という文字列を10桁に「0」で桁埋め。左側を埋める。</p>
<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
<p>str_pad($_counter,10,&#8217;0&#8242;,STR_PAD_LEFT)</p>
</blockquote>
<p dir="ltr">sprintfを使って「$_counter」という文字列を10桁に「0」で桁埋め。</p>
<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
<p dir="ltr">sprintf(&#8220;%010d&#8221;,$_counter)</p>
</blockquote>

]]></content:encoded>
			<wfw:commentRss>http://tt-house.com/2008/09/php.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Smartyのテンプレート内にJavaScriptを記述する方法</title>
		<link>http://tt-house.com/2008/05/smartyjavascript.html</link>
		<comments>http://tt-house.com/2008/05/smartyjavascript.html#comments</comments>
		<pubDate>Wed, 28 May 2008 14:54:37 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[Smarty]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.tt-house.com//wp/?p=57</guid>
		<description><![CDATA[「{」と「}」はSmarty側で変数の判定に使うので、JavaScriptのfu...]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftt-house.com%252F2008%252F05%252Fsmartyjavascript.html%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Smarty%E3%81%AE%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E5%86%85%E3%81%ABJavaScript%E3%82%92%E8%A8%98%E8%BF%B0%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95%22%20%7D);"></div>
<p>「{」と「}」はSmarty側で変数の判定に使うので、JavaScriptのfunctionを記述するとSmartyに怒られてしまいます。まぁ当然の結果です。</p>
<p>で、</p>
<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
<p>{literal}<br />&lt;script language=&#8221;javascript&#8221;&gt;<br />function hoge()<br />{<br />&nbsp;alert(&#8216;hoge&#8217;);<br />}<br />&lt;/script&gt;<br />{/literal}</p>
</blockquote>
<p dir="ltr">という風に「{literal}」でスクリプトブロックをくくると怒られないで済みます。</p>

]]></content:encoded>
			<wfw:commentRss>http://tt-house.com/2008/05/smartyjavascript.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ドコモのユーザ識別番号が取得しやすくなりました</title>
		<link>http://tt-house.com/2008/04/post_22.html</link>
		<comments>http://tt-house.com/2008/04/post_22.html#comments</comments>
		<pubDate>Thu, 03 Apr 2008 17:57:30 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[モバイル]]></category>

		<guid isPermaLink="false">http://www.tt-house.com//wp/?p=54</guid>
		<description><![CDATA[$_SERVER['HTTP_X_DCMGUID']; UIDとは別物の7桁半...]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftt-house.com%252F2008%252F04%252Fpost_22.html%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22%E3%83%89%E3%82%B3%E3%83%A2%E3%81%AE%E3%83%A6%E3%83%BC%E3%82%B6%E8%AD%98%E5%88%A5%E7%95%AA%E5%8F%B7%E3%81%8C%E5%8F%96%E5%BE%97%E3%81%97%E3%82%84%E3%81%99%E3%81%8F%E3%81%AA%E3%82%8A%E3%81%BE%E3%81%97%E3%81%9F%22%20%7D);"></div>
<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
<p>$_SERVER['HTTP_X_DCMGUID'];</p>
</blockquote>
<p dir="ltr">UIDとは別物の7桁半角英数字。上記はPHPでの例です。</p>
<p dir="ltr">ドコモも勝手サイトを無視できなくなってきたんでしょうね。開発屋としてはありがたい限りです。ただ、きっと完全にユニークな値であることは保障されないんだろうな。UID同様、使いまわすんだろうな。注意せねば。</p>

]]></content:encoded>
			<wfw:commentRss>http://tt-house.com/2008/04/post_22.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
