<?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"
	>

<channel>
	<title>PHP</title>
	<atom:link href="http://php.naruse.info/feed/" rel="self" type="application/rss+xml" />
	<link>http://php.naruse.info</link>
	<description>PHPに関する事のメモ色々Blog</description>
	<pubDate>Mon, 29 Dec 2008 18:12:54 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5</generator>
	<language>ja</language>
			<item>
		<title>mb_convert_variables() は連想配列のキーを文字コードを変換しない</title>
		<link>http://php.naruse.info/2008/12/30/mb_convert_variables-%e3%81%af%e9%80%a3%e6%83%b3%e9%85%8d%e5%88%97%e3%81%ae%e3%82%ad%e3%83%bc%e3%82%92%e6%96%87%e5%ad%97%e3%82%b3%e3%83%bc%e3%83%89%e3%82%92%e5%a4%89%e6%8f%9b%e3%81%97%e3%81%aa/</link>
		<comments>http://php.naruse.info/2008/12/30/mb_convert_variables-%e3%81%af%e9%80%a3%e6%83%b3%e9%85%8d%e5%88%97%e3%81%ae%e3%82%ad%e3%83%bc%e3%82%92%e6%96%87%e5%ad%97%e3%82%b3%e3%83%bc%e3%83%89%e3%82%92%e5%a4%89%e6%8f%9b%e3%81%97%e3%81%aa/#comments</comments>
		<pubDate>Mon, 29 Dec 2008 18:12:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://php.naruse.info/?p=18</guid>
		<description><![CDATA[mb_convert_variables() は連想配列のキーを文字コードを変換しない
]]></description>
			<content:encoded><![CDATA[<p>mb_convert_variables() は連想配列のキーを文字コードを変換しない</p>
]]></content:encoded>
			<wfw:commentRss>http://php.naruse.info/2008/12/30/mb_convert_variables-%e3%81%af%e9%80%a3%e6%83%b3%e9%85%8d%e5%88%97%e3%81%ae%e3%82%ad%e3%83%bc%e3%82%92%e6%96%87%e5%ad%97%e3%82%b3%e3%83%bc%e3%83%89%e3%82%92%e5%a4%89%e6%8f%9b%e3%81%97%e3%81%aa/feed/</wfw:commentRss>
		</item>
		<item>
		<title>mb_convert_kana</title>
		<link>http://php.naruse.info/2008/12/30/mb_convert_kana/</link>
		<comments>http://php.naruse.info/2008/12/30/mb_convert_kana/#comments</comments>
		<pubDate>Mon, 29 Dec 2008 18:12:17 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://php.naruse.info/?p=17</guid>
		<description><![CDATA[mb_convert_kana
r 「全角」英字を「半角」に変換します。
R 「半角」英字を「全角」に変換します。
n 「全角」数字を「半角」に変換します。
N 「半角」数字を「全角」に変換します。
a 「全角」英数字を「半角」に変換します。
A 「半角」英数字を「全角」に変換します （&#8221;a&#8221;, &#8220;A&#8221; オプションに含まれる文字は、U+0022, U+0027, U+005C, U+007Eを除く U+0021 - U+007E の範囲です）。
s 「全角」スペースを「半角」に変換します（U+3000 -&#62; U+0020）。
S 「半角」スペースを「全角」に変換します（U+0020 -&#62; U+3000）。
k 「全角カタカナ」を「半角カタカナ」に変換します。
K 「半角カタカナ」を「全角カタカナ」に変換します。
h 「全角ひらがな」を「半角カタカナ」に変換します。
H 「半角カタカナ」を「全角ひらがな」に変換します。
c 「全角カタカナ」を「全角ひらがな」に変換します。
C 「全角ひらがな」を「全角カタカナ」に変換します。
V 濁点付きの文字を一文字に変換します。&#8221;K&#8221;, &#8220;H&#8221; と共に使用します。
]]></description>
			<content:encoded><![CDATA[<p>mb_convert_kana</p>
<p>r 「全角」英字を「半角」に変換します。<br />
R 「半角」英字を「全角」に変換します。<br />
n 「全角」数字を「半角」に変換します。<br />
N 「半角」数字を「全角」に変換します。<br />
a 「全角」英数字を「半角」に変換します。<br />
A 「半角」英数字を「全角」に変換します （&#8221;a&#8221;, &#8220;A&#8221; オプションに含まれる文字は、U+0022, U+0027, U+005C, U+007Eを除く U+0021 - U+007E の範囲です）。<br />
s 「全角」スペースを「半角」に変換します（U+3000 -&gt; U+0020）。<br />
S 「半角」スペースを「全角」に変換します（U+0020 -&gt; U+3000）。<br />
k 「全角カタカナ」を「半角カタカナ」に変換します。<br />
K 「半角カタカナ」を「全角カタカナ」に変換します。<br />
h 「全角ひらがな」を「半角カタカナ」に変換します。<br />
H 「半角カタカナ」を「全角ひらがな」に変換します。<br />
c 「全角カタカナ」を「全角ひらがな」に変換します。<br />
C 「全角ひらがな」を「全角カタカナ」に変換します。<br />
V 濁点付きの文字を一文字に変換します。&#8221;K&#8221;, &#8220;H&#8221; と共に使用します。</p>
]]></content:encoded>
			<wfw:commentRss>http://php.naruse.info/2008/12/30/mb_convert_kana/feed/</wfw:commentRss>
		</item>
		<item>
		<title>SJISで\が混入するダメ文字</title>
		<link>http://php.naruse.info/2008/12/30/sjis%e3%81%a7%e3%81%8c%e6%b7%b7%e5%85%a5%e3%81%99%e3%82%8b%e3%83%80%e3%83%a1%e6%96%87%e5%ad%97/</link>
		<comments>http://php.naruse.info/2008/12/30/sjis%e3%81%a7%e3%81%8c%e6%b7%b7%e5%85%a5%e3%81%99%e3%82%8b%e3%83%80%e3%83%a1%e6%96%87%e5%ad%97/#comments</comments>
		<pubDate>Mon, 29 Dec 2008 18:10:49 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://php.naruse.info/?p=16</guid>
		<description><![CDATA[ソЫIX噂浬欺圭構蚕十申曾箪貼能表暴予禄兔
喀媾彌拿杤歃濬畚秉綵臀藹觸軆鐔饅鷭
\が混入する為
if(strstr($val,&#8221;\\&#8221;)){
$val = stripslashes($val);
}
]]></description>
			<content:encoded><![CDATA[<p>ソЫIX噂浬欺圭構蚕十申曾箪貼能表暴予禄兔<br />
喀媾彌拿杤歃濬畚秉綵臀藹觸軆鐔饅鷭</p>
<p>\が混入する為<br />
if(strstr($val,&#8221;\\&#8221;)){<br />
$val = stripslashes($val);<br />
}</p>
]]></content:encoded>
			<wfw:commentRss>http://php.naruse.info/2008/12/30/sjis%e3%81%a7%e3%81%8c%e6%b7%b7%e5%85%a5%e3%81%99%e3%82%8b%e3%83%80%e3%83%a1%e6%96%87%e5%ad%97/feed/</wfw:commentRss>
		</item>
		<item>
		<title>配列じゃなかったら、配列に変換</title>
		<link>http://php.naruse.info/2008/12/30/%e9%85%8d%e5%88%97%e3%81%98%e3%82%83%e3%81%aa%e3%81%8b%e3%81%a3%e3%81%9f%e3%82%89%e3%80%81%e9%85%8d%e5%88%97%e3%81%ab%e5%a4%89%e6%8f%9b/</link>
		<comments>http://php.naruse.info/2008/12/30/%e9%85%8d%e5%88%97%e3%81%98%e3%82%83%e3%81%aa%e3%81%8b%e3%81%a3%e3%81%9f%e3%82%89%e3%80%81%e9%85%8d%e5%88%97%e3%81%ab%e5%a4%89%e6%8f%9b/#comments</comments>
		<pubDate>Mon, 29 Dec 2008 18:08:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://php.naruse.info/?p=15</guid>
		<description><![CDATA[if(is_array($maker)){
$maker_array = $maker=11;
}else{
$maker_array = (array)$maker;
}
print_r($maker_array);
]]></description>
			<content:encoded><![CDATA[<p>if(is_array($maker)){<br />
$maker_array = $maker=11;<br />
}else{<br />
$maker_array = (array)$maker;<br />
}</p>
<p>print_r($maker_array);</p>
]]></content:encoded>
			<wfw:commentRss>http://php.naruse.info/2008/12/30/%e9%85%8d%e5%88%97%e3%81%98%e3%82%83%e3%81%aa%e3%81%8b%e3%81%a3%e3%81%9f%e3%82%89%e3%80%81%e9%85%8d%e5%88%97%e3%81%ab%e5%a4%89%e6%8f%9b/feed/</wfw:commentRss>
		</item>
		<item>
		<title>最後の１文字を削除</title>
		<link>http://php.naruse.info/2008/12/30/%e6%9c%80%e5%be%8c%e3%81%ae%ef%bc%91%e6%96%87%e5%ad%97%e3%82%92%e5%89%8a%e9%99%a4/</link>
		<comments>http://php.naruse.info/2008/12/30/%e6%9c%80%e5%be%8c%e3%81%ae%ef%bc%91%e6%96%87%e5%ad%97%e3%82%92%e5%89%8a%e9%99%a4/#comments</comments>
		<pubDate>Mon, 29 Dec 2008 18:08:06 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://php.naruse.info/?p=14</guid>
		<description><![CDATA[substr(変数, 0, (strlen(変数)-1) );
]]></description>
			<content:encoded><![CDATA[<p>substr(変数, 0, (strlen(変数)-1) );</p>
]]></content:encoded>
			<wfw:commentRss>http://php.naruse.info/2008/12/30/%e6%9c%80%e5%be%8c%e3%81%ae%ef%bc%91%e6%96%87%e5%ad%97%e3%82%92%e5%89%8a%e9%99%a4/feed/</wfw:commentRss>
		</item>
		<item>
		<title>strtotime</title>
		<link>http://php.naruse.info/2008/12/30/strtotime/</link>
		<comments>http://php.naruse.info/2008/12/30/strtotime/#comments</comments>
		<pubDate>Mon, 29 Dec 2008 18:07:33 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://php.naruse.info/?p=13</guid>
		<description><![CDATA[echo &#8220;1日前&#8221; . date(&#8221;Y/m/d&#8221;,strtotime(&#8221;-1 day&#8221;));
echo &#8220;1ヶ月前&#8221; . date(&#8221;Y/m/d&#8221;,strtotime(&#8221;-1 month&#8221;));
echo &#8220;1年前&#8221; . date(&#8221;Y/m/d&#8221;,strtotime(&#8221;-1 year&#8221;));
echo &#8220;1週間前&#8221; . date(&#8221;Y/m/d&#8221;,strtotime(&#8221;-1 week&#8221;));
]]></description>
			<content:encoded><![CDATA[<p>echo &#8220;1日前&#8221; . date(&#8221;Y/m/d&#8221;,strtotime(&#8221;-1 day&#8221;));<br />
echo &#8220;1ヶ月前&#8221; . date(&#8221;Y/m/d&#8221;,strtotime(&#8221;-1 month&#8221;));<br />
echo &#8220;1年前&#8221; . date(&#8221;Y/m/d&#8221;,strtotime(&#8221;-1 year&#8221;));<br />
echo &#8220;1週間前&#8221; . date(&#8221;Y/m/d&#8221;,strtotime(&#8221;-1 week&#8221;));</p>
]]></content:encoded>
			<wfw:commentRss>http://php.naruse.info/2008/12/30/strtotime/feed/</wfw:commentRss>
		</item>
		<item>
		<title>fopen</title>
		<link>http://php.naruse.info/2008/06/21/fopen/</link>
		<comments>http://php.naruse.info/2008/06/21/fopen/#comments</comments>
		<pubDate>Sat, 21 Jun 2008 11:47:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://php.naruse.info/?p=12</guid>
		<description><![CDATA[w →ファイルを空にするので注意
]]></description>
			<content:encoded><![CDATA[<p>w →ファイルを空にするので注意</p>
]]></content:encoded>
			<wfw:commentRss>http://php.naruse.info/2008/06/21/fopen/feed/</wfw:commentRss>
		</item>
		<item>
		<title>増え続けるデータとアクセスとの闘いの日々</title>
		<link>http://php.naruse.info/2008/06/19/%e5%a2%97%e3%81%88%e7%b6%9a%e3%81%91%e3%82%8b%e3%83%87%e3%83%bc%e3%82%bf%e3%81%a8%e3%82%a2%e3%82%af%e3%82%bb%e3%82%b9%e3%81%a8%e3%81%ae%e9%97%98%e3%81%84%e3%81%ae%e6%97%a5%e3%80%85/</link>
		<comments>http://php.naruse.info/2008/06/19/%e5%a2%97%e3%81%88%e7%b6%9a%e3%81%91%e3%82%8b%e3%83%87%e3%83%bc%e3%82%bf%e3%81%a8%e3%82%a2%e3%82%af%e3%82%bb%e3%82%b9%e3%81%a8%e3%81%ae%e9%97%98%e3%81%84%e3%81%ae%e6%97%a5%e3%80%85/#comments</comments>
		<pubDate>Wed, 18 Jun 2008 16:37:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://php.naruse.info/?p=8</guid>
		<description><![CDATA[大規模サイトの開発・運用ノウハウ　GREE編
データ
• 増え続けるデータとアクセスとの闘いの日々
– パフォーマンス
• どんだけ速くデータをとってこられるか
– スケーラビリティ
• データが無限に増え続けてもサーバリソースで問題を解決できるか？
– 似て非なる両者(やることはわりと一緒)
• 当たり前ですが、データは増え続ける一方です
• 増えるペースも増え続けてます
• やることってシンプル
– データベース分割
– インデックス張る
– キャッシュ
• データキャッシュ
• スマートキャッシュ(書きながら命名)
• まとめてみると
• TEXTフィールド分離
• テーブル分離
• テーブル分割
• JOINしない
• 正規化がんばりすぎない
• キャッシュも使いどころを考えてうまいこと…
– Memcacheって、なんか…だめ
• そもそもアプリケーションをなんとか…(SNSっていろいろ面倒)
– 「ともだちの~」とかACLとか
• 最近はネットワークトラフィックが馬鹿にならないです
]]></description>
			<content:encoded><![CDATA[<p>大規模サイトの開発・運用ノウハウ　GREE編</p>
<p>データ<br />
• 増え続けるデータとアクセスとの闘いの日々<br />
– パフォーマンス<br />
• どんだけ速くデータをとってこられるか<br />
– スケーラビリティ<br />
• データが無限に増え続けてもサーバリソースで問題を解決できるか？<br />
– 似て非なる両者(やることはわりと一緒)<br />
• 当たり前ですが、データは増え続ける一方です<br />
• 増えるペースも増え続けてます<br />
• やることってシンプル<br />
– データベース分割<br />
– インデックス張る<br />
– キャッシュ<br />
• データキャッシュ<br />
• スマートキャッシュ(書きながら命名)</p>
<p>• まとめてみると<br />
• TEXTフィールド分離<br />
• テーブル分離<br />
• テーブル分割<br />
• JOINしない<br />
• 正規化がんばりすぎない<br />
• キャッシュも使いどころを考えてうまいこと…<br />
– Memcacheって、なんか…だめ<br />
• そもそもアプリケーションをなんとか…(SNSっていろいろ面倒)<br />
– 「ともだちの~」とかACLとか<br />
• 最近はネットワークトラフィックが馬鹿にならないです</p>
]]></content:encoded>
			<wfw:commentRss>http://php.naruse.info/2008/06/19/%e5%a2%97%e3%81%88%e7%b6%9a%e3%81%91%e3%82%8b%e3%83%87%e3%83%bc%e3%82%bf%e3%81%a8%e3%82%a2%e3%82%af%e3%82%bb%e3%82%b9%e3%81%a8%e3%81%ae%e9%97%98%e3%81%84%e3%81%ae%e6%97%a5%e3%80%85/feed/</wfw:commentRss>
		</item>
		<item>
		<title>bootstrapファイル</title>
		<link>http://php.naruse.info/2008/06/19/bootstrap%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab/</link>
		<comments>http://php.naruse.info/2008/06/19/bootstrap%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab/#comments</comments>
		<pubDate>Wed, 18 Jun 2008 16:31:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://php.naruse.info/?p=7</guid>
		<description><![CDATA[大規模サイトの開発・運用ノウハウ　GREE編
bootstrapファイル
– ディレクトリが増えてきて、構造が複雑になってくると
– 「あれ？この定数ってここでつかっていいんだっけ？」
– 「あれ？このメソッドってここで呼んでいいんだっけ？」
– とかとか出てきます
• だったらrequice_onceしとけばいいじゃん
– 50,000 filesもあると、require_onceのコストも馬鹿になりません(もちろんeacceleratorと
か入れてますが - ちなみにコンパイルキャッシュを切ると相当遅いです)
– ということでbootstrapファイルとrequireのルール作り
src/Gree_Bootstrap.php
– 全サービス共通の定数
• define(‘PATH_ROOT’, dirname(dirname(__FILE__)));
– とかいうパス定義とか
– 絶対使うだろー、的なファイルのrequire
• require_once PATH_SRC_CLASS . &#8216;Gree/Util.php&#8217;;
– とか
• でもって
– 各frontend以下の値は、各frontend毎に勝手に(但しfrontend間の依存は原則禁止)
– 各service以下のクラス、定数等はgetService(‘service’)を通じて
– src以下のクラスライブラリはbootstrapでrequireされているもの以外は適宜require
• ってなルールです(書きながら決めた)
]]></description>
			<content:encoded><![CDATA[<p>大規模サイトの開発・運用ノウハウ　GREE編</p>
<p>bootstrapファイル<br />
– ディレクトリが増えてきて、構造が複雑になってくると<br />
– 「あれ？この定数ってここでつかっていいんだっけ？」<br />
– 「あれ？このメソッドってここで呼んでいいんだっけ？」<br />
– とかとか出てきます<br />
• だったらrequice_onceしとけばいいじゃん<br />
– 50,000 filesもあると、require_onceのコストも馬鹿になりません(もちろんeacceleratorと<br />
か入れてますが - ちなみにコンパイルキャッシュを切ると相当遅いです)<br />
– ということでbootstrapファイルとrequireのルール作り</p>
<p>src/Gree_Bootstrap.php<br />
– 全サービス共通の定数<br />
• define(‘PATH_ROOT’, dirname(dirname(__FILE__)));<br />
– とかいうパス定義とか<br />
– 絶対使うだろー、的なファイルのrequire<br />
• require_once PATH_SRC_CLASS . &#8216;Gree/Util.php&#8217;;<br />
– とか<br />
• でもって<br />
– 各frontend以下の値は、各frontend毎に勝手に(但しfrontend間の依存は原則禁止)<br />
– 各service以下のクラス、定数等はgetService(‘service’)を通じて<br />
– src以下のクラスライブラリはbootstrapでrequireされているもの以外は適宜require<br />
• ってなルールです(書きながら決めた)</p>
]]></content:encoded>
			<wfw:commentRss>http://php.naruse.info/2008/06/19/bootstrap%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab/feed/</wfw:commentRss>
		</item>
		<item>
		<title>PHPカンファレンス2007</title>
		<link>http://php.naruse.info/2008/06/19/php%e3%82%ab%e3%83%b3%e3%83%95%e3%82%a1%e3%83%ac%e3%83%b3%e3%82%b92007/</link>
		<comments>http://php.naruse.info/2008/06/19/php%e3%82%ab%e3%83%b3%e3%83%95%e3%82%a1%e3%83%ac%e3%83%b3%e3%82%b92007/#comments</comments>
		<pubDate>Wed, 18 Jun 2008 16:22:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://php.naruse.info/?p=6</guid>
		<description><![CDATA[PHPカンファレンス2007
http://www.php.gr.jp/seminar/20070901/prog.php
]]></description>
			<content:encoded><![CDATA[<p>PHPカンファレンス2007</p>
<p>http://www.php.gr.jp/seminar/20070901/prog.php</p>
]]></content:encoded>
			<wfw:commentRss>http://php.naruse.info/2008/06/19/php%e3%82%ab%e3%83%b3%e3%83%95%e3%82%a1%e3%83%ac%e3%83%b3%e3%82%b92007/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
