<?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>pc.casey.jp &#187; PHP</title>
	<atom:link href="http://pc.casey.jp/archives/category/php/feed" rel="self" type="application/rss+xml" />
	<link>http://pc.casey.jp</link>
	<description>コンピュータに関する記述とメモ</description>
	<lastBuildDate>Wed, 08 Feb 2012 01:21:06 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>[PHP] 実行中のPHP バージョンを確認して処理分岐</title>
		<link>http://pc.casey.jp/archives/153898817</link>
		<comments>http://pc.casey.jp/archives/153898817#comments</comments>
		<pubDate>Mon, 19 Dec 2011 17:46:28 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[code]]></category>

		<guid isPermaLink="false">http://pc.casey.jp/?p=153898817</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://pc.casey.jp/archives/153898817' addthis:title='[PHP] 実行中のPHP バージョンを確認して処理分岐 '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>実行中のPHP バージョンを確認して処理分岐する。 バージョン定数ってのも追加されたっぽいけど、それ自体がバージョン依存のようだ。 参考コード /*  * PHP VERSION CHECK  *  * Auther : pc.casey.jp  * License: GNU GPL  * Code   : PHP, UTF-8 * Usage : * $PHP_MIN_VER = "5.2.2"; * _php_version_check($PHP_MIN_VER);  * Version:  *   Ver.0.01 2011.09.23 1st.  */ function _php_version_check($PHP_MIN_VER){     $PHP_NOW_VER = phpversion();     if($PHP_NOW_VER &#60; $PHP_MIN_VER){         echo "PHP VERSION ERROR, [...]]]></description>
		<wfw:commentRss>http://pc.casey.jp/archives/153898817/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[PHP] スクリプトからSAPI を調べる</title>
		<link>http://pc.casey.jp/archives/153898821</link>
		<comments>http://pc.casey.jp/archives/153898821#comments</comments>
		<pubDate>Sun, 18 Dec 2011 15:03:22 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[.htaccess]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[coreserver]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[データベース]]></category>
		<category><![CDATA[メール]]></category>
		<category><![CDATA[書き込み]]></category>

		<guid isPermaLink="false">http://pc.casey.jp/?p=153898821</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://pc.casey.jp/archives/153898821' addthis:title='[PHP] スクリプトからSAPI を調べる '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>ファイル関係が面倒なので事あるごとにメールで送ってしまう。それ以外だとデータベースに接続してしまったほうが面倒がなくていいけど、それが面倒だったりする。 どのモードで動作しているかをサクっと返してくれるものがないらしい。 一般的にはテンポラリファイルを作って書き込み出来るかをチェックしたりするようだ。これはperl でも同じだけどエラー処理とか例外処理とかが面倒だ…。 PHP マニュアルによれば、CLI から実行していればcli を返すらしいが・・？ 結果 CLI から実行 php_sapi_name:cgi&#60;br /&#62; Script return:CGI END Web から呼び出す php_sapi_name:apache Script return:other END あれ？ ちなみに、テストはCORESERVER で行った。CORESERVER は通常モジュール版で、.htaccess を設定することでCGI 版になる。が、どちらも同じ結果「apache」だった。うーん。 テストコード &#60;?php /*  * t_getPhpMode  *  * the script check running mode,  * return CLI or CGI or null  *  * PHP4.2.0+  *  * Ver.0.01 2011.09.29 by [...]]]></description>
		<wfw:commentRss>http://pc.casey.jp/archives/153898821/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[PHP] 404レポート（PHP版）Ver.0.05→0.08</title>
		<link>http://pc.casey.jp/archives/153898391</link>
		<comments>http://pc.casey.jp/archives/153898391#comments</comments>
		<pubDate>Mon, 03 Oct 2011 03:03:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[.htaccess]]></category>
		<category><![CDATA[code]]></category>

		<guid isPermaLink="false">http://pc.casey.jp/?p=153898391</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://pc.casey.jp/archives/153898391' addthis:title='[PHP] 404レポート（PHP版）Ver.0.05→0.08 '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>以前作成した「pc.casey.jp » [PHP] 404レポート（PHP版）」を幾つかのサイトで改良していると、やっぱり設定ファイルが別になっていないと面倒。ということで、「pc.casey.jp » [PHP] さくらインターネット リソース情報自動報告プログラム（PHP 版）」で使ったコードを流用したバージョンを作った。 主な変更点 Ver.0.06 設定を外部ファイルに保存するようにした。これにより複数サイトに設置している場合でも本体の差し替えが簡単になった・・ハズ。 Ver0.07 動作しているサーバーをわかりやすくするため、メール本文内にホスト名を追加した Ver.0.08 動作しているサーバーをわかりやすくするため、メールタイトルにホスト名を追加した 動作例 開発中のデバッグモード時の例（Ver.0.08） 実稼動の例（Ver.0.08） err404.php &#60;?php /* ===================================================  *  404 Report and Suggest for mb-PHP  * ---------------------------------------------------  * DESCRIPTION:  *  - output 404 message for user  *    To display a polite message to visitors  *  *  - guide for new [...]]]></description>
		<wfw:commentRss>http://pc.casey.jp/archives/153898391/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[PHP] さくらインターネット リソース情報自動報告プログラム（PHP 版）</title>
		<link>http://pc.casey.jp/archives/153898285</link>
		<comments>http://pc.casey.jp/archives/153898285#comments</comments>
		<pubDate>Sun, 02 Oct 2011 03:03:43 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[.htaccess]]></category>
		<category><![CDATA[Cookie]]></category>
		<category><![CDATA[coreserver]]></category>
		<category><![CDATA[cron]]></category>
		<category><![CDATA[Date]]></category>
		<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[Gmail]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Shell]]></category>
		<category><![CDATA[さくらインターネット]]></category>
		<category><![CDATA[サーバー]]></category>
		<category><![CDATA[パスワード]]></category>
		<category><![CDATA[メール]]></category>
		<category><![CDATA[変換]]></category>
		<category><![CDATA[自作]]></category>

		<guid isPermaLink="false">http://pc.casey.jp/?p=153898285</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://pc.casey.jp/archives/153898285' addthis:title='[PHP] さくらインターネット リソース情報自動報告プログラム（PHP 版） '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>さくらインターネットのベースOS はFreeBSD。 また、とてもリソース管理が厳しく、 だからこそ快適に利用できる（と思い込んでいる）。 そんなさくらインターネットの唯一の欠点と言えなくもないのがデータベースの作成制限。しかし、先日の発表資料を読んだ時は思わすその日一日、いやいまでも喜びの余り走り出しす勢いだ。 さて、筆者はCORESERVER も利用しているが、こちらは全体的な順位やどれくらい負荷をかけているかがコントロールパネルで確認できる。 しかし、さくらインターネットは転送量とCPU 使用時間がわかるくらいで順位やドメインごとのデータは不明。さらに、そのCPU 使用時間や短期間でのアクセス増加を検知すると、優先度を下げたり503 エラーを発生させる。このような処理によってさらに安定した運用とリソース配分が行われている（たぶん）。 そうすると気になるのがCPU への負荷や転送量がどれくらいの時に制限を受けるかということだが、これは明示されていない。情報を集めるとある程度の予測は可能だが、急激な増加（特にクローラの集中砲火を浴びたとき）を知らずに受けたことなどで制限を受けることもある。これらの情報を集める過程で多かったのが、503 の頻発などを受けてサポートに問い合わせたり、コントロールパネルを確認したらリソースの消費に驚いたというものだ。 筆者は最近さくらインターネットに引っ越してきたこともあって、どれくらいの負荷がかかっているのかなどをこまめに確認している。さらに、ある程度情報が集まったり、”何か”が起きたときには記事にしようと普段から情報を集めている。が、面倒だ（何が面倒っていちいちID/パスワードでログインしなければならないし、複数アカウントあったらさらに面倒だし、グラフ作ったりするときのデータの整形や取りこぼしも・・）。そういうものこそ自動的にやってほしいもの。 標準機能としても特に見当たらず、また、随分探しまわったが、どういうわけか筆者のような人間が他に居ないのか、そういうツールが見当たらなかった。まぁ皆様Geek な人が多いからちょちょっと自作しているのかもしれない。 ということで、テキトーに作りました。 動作例 データのみ CSV フォーマットもどきで、コピー・アンド・ペーストすればグラフを使って視覚的に推移を把握することもできる。データフォーマットについては「データフォーマット」の項を参照。 ※バージョン表示がついていないバージョンの時のもの 詳細付き データのみだと必要な情報が見づらいかもしれない。詳細付きにすれば、文字情報でも内容を確認しやすくなる。 ※バージョン0.09 の時のもの iPhone で確認 gmail など複数のデバイスや場所で同一のメールを確認できるように設定しておくと、万一の負荷急増にも気がつける。気がつければ対応もできるし、それまでの時間も短縮できるかもしれない。 ※バージョン 0.16 の時のもの データ使用例 以下は同じデータで、表現の仕方が異なるだけ。 使用例１ 使用例２ データフォーマット cron で回そうかと思っているのと、ファイル関係は面倒なのでメールで送るように作りました。HTML で表示させることもできますのでどうぞご自由に。 メール本文には次の１行が書かれています（カスタマイズできます） FMTCASEYJP01,2011/09/22 16:23:06,USER,13.6,46:29,1:28:12,895.0 ,1:28:18,887.3 データ形式は以下のとおり： FMTCASEYJP01　・・・・・・・・　フォーマットバージョン 2011/09/22 16:23:06　・・・・　取得した日時 USER　・・・・・・・・・・・・・　ユーザ名 13.6　・・・・・・・・・・・・・　現在のディスク使用量（％） 46:29　・・・・・・・・・・・・　現在のCPU 使用時間 1:28:12　・・・・・・・・・・・　昨日のCPU [...]]]></description>
		<wfw:commentRss>http://pc.casey.jp/archives/153898285/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[PHP] マルチスレッド処理</title>
		<link>http://pc.casey.jp/archives/153898283</link>
		<comments>http://pc.casey.jp/archives/153898283#comments</comments>
		<pubDate>Sat, 01 Oct 2011 15:03:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[coreserver]]></category>
		<category><![CDATA[cron]]></category>

		<guid isPermaLink="false">http://pc.casey.jp/?p=153898283</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://pc.casey.jp/archives/153898283' addthis:title='[PHP] マルチスレッド処理 '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>逐次処理では時間がかかり kill されてしまうので、マルチスレッドで非同期通信をすれば制限時間内で完了できそう。しかし、調べていてわかったのは、PHP にはマルチスレッド処理がないらしい。いくつか対応策が見つかって、fork して子プロセスを作るとか、exec 関数を使ってバックグラウンドで処理させるとか。 いくつかサンプルが見つかったものの、上手く動作するものがみつからなかった。動作させるために問題を見つけて対処するべきなのだが、他に動作するサンプルがあるならそちらを優先したいと思っていくつか試した。決して面倒だとか・・。 実行結果 Warning: curl_setopt() [function.curl-setopt]: CURLOPT_FOLLOWLOCATION cannot be activated when in safe_mode or an open_basedir is set in /virtual/user_idpublic_html/www.example.com/s_curl_php5.php on line 39 Warning: curl_setopt() [function.curl-setopt]: CURLOPT_FOLLOWLOCATION cannot be activated when in safe_mode or an open_basedir is set in /virtual/user_idpublic_html/www.example.com/s_curl_php5.php on line 39 Warning: curl_setopt() [function.curl-setopt]: CURLOPT_FOLLOWLOCATION cannot be activated [...]]]></description>
		<wfw:commentRss>http://pc.casey.jp/archives/153898283/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[PHP] open_basedir が解決できなかった</title>
		<link>http://pc.casey.jp/archives/153898280</link>
		<comments>http://pc.casey.jp/archives/153898280#comments</comments>
		<pubDate>Sat, 01 Oct 2011 03:03:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Cookie]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[サーバー]]></category>

		<guid isPermaLink="false">http://pc.casey.jp/?p=153898280</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://pc.casey.jp/archives/153898280' addthis:title='[PHP] open_basedir が解決できなかった '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>Snoopy を使おうとしたけれど、できなかったのでメモしておく。必要なモノがインストールされていないとか、もともと許可されていないサーバーなのか、何れにしても原因がわかった後にはつまらないことなのだろうが。 Snoopy は外部サーバーと通信して、HTML を取得することができるクライアントらしい。またGET やPOST のほか、SSL やCookie にも対応しているというから、アイデア次第で面白いプログラムが書けそうだ。 テストコード &#60;?php $url = 'https://***'; include_once 'Snoopy.class.php'; $params['domain'] = '***'; $params['password'] = '***'; $snoopy = new Snoopy; $snoopy-&#62;submit($url, $params); echo $snoopy-&#62;results; echo "END"; ?&#62; エラー Warning: is_executable() [function.is-executable]: open_basedir restriction in effect. File(/usr/local/bin/curl) is not within the allowed path(s): (.:/virtual:/tmp:/usr/local/lib/php:/usr/local/php/bin) in /virtual/***/public_html/***/Snoopy/Snoopy.class.php on line 361 参考 [...]]]></description>
		<wfw:commentRss>http://pc.casey.jp/archives/153898280/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[PHP] 404レポート（PHP版）</title>
		<link>http://pc.casey.jp/archives/153898045</link>
		<comments>http://pc.casey.jp/archives/153898045#comments</comments>
		<pubDate>Wed, 28 Sep 2011 03:03:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[.htaccess]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[CMS]]></category>
		<category><![CDATA[ip]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[メール]]></category>

		<guid isPermaLink="false">http://pc.casey.jp/?p=153898045</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://pc.casey.jp/archives/153898045' addthis:title='[PHP] 404レポート（PHP版） '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>以前CGI 版で404 レポートを出力するプログラムを作ったのだが、今回はPHP 版を作った。何故つくろうかと思ったかというと、WordPress などにはプラグインで機能するものがあるが、これらを利用しないサイトでも移転した際の案内を付けたかったから。 ところで、疑問に思うのは同様のプログラムを見つけることができないのは何故だろう。見つけ方が悪いのか、それとももっと高次元（Apache のログを解析するなど）で行われているのか。あるいはGoogle のウェブマスターツールなどでも404 がどこで発生しているかを見つけることはできるから、そういったものを使っているのだろうか。 WordPress などのCMS には404 時の動作を定義したり、改造したり、プラグインを導入したりすることで発見から対策までを容易にしている。今回作るプログラムは単体で動作するように設計しているので、どのサイトにもPHP が利用できる環境であれば使えると思う。 期待する動作 .htaccess で404 時に本プログラムを指定する 本プログラムはユーザ、Bot 等に対してHTTP ステータスコード 404 を返す 同時に検索語が解析でき、移転先へクエリを転送できる場合は案内する 同時に管理者に対して404 の発生を知らせる 管理者は必要に応じて .htaccess を更新し、適切なページにリダイレクトさせ404 を軽減する バージョンアップ 公開までに少し運用して改良したところ Ver.0.04- favicon やrobots などを報告しないようにする$reject 配列を追加し、合致した場合は報告しない（完全一致のみ）。 ※Ver.0.03 でも搭載したが、ハードコーディングだったのを改善した Ver.0.05- 攻撃を目的としたアクセスの多くがReferer を持っていないことから、Referer を持っていない場合に報告しないようにする設定を追加した。$need_referer をfalse にするとreject に合致しなければ全件報告するので、どんな攻撃を受けたか見ることができる。ちなみにレポートが来たということは404 で弾いたということになる。その他Ver.0.05 ではいろいろ弄ったので新たなバグを内包したかも。 動作例 コード &#60;?php /* ===================================================  *  404 [...]]]></description>
		<wfw:commentRss>http://pc.casey.jp/archives/153898045/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[PHP] タイムゾーン設定が有効にならない謎</title>
		<link>http://pc.casey.jp/archives/153897588</link>
		<comments>http://pc.casey.jp/archives/153897588#comments</comments>
		<pubDate>Sat, 17 Sep 2011 09:03:49 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[.htaccess]]></category>
		<category><![CDATA[BlueOnyx]]></category>
		<category><![CDATA[CMS]]></category>
		<category><![CDATA[Date]]></category>
		<category><![CDATA[time]]></category>
		<category><![CDATA[サーバー]]></category>

		<guid isPermaLink="false">http://pc.casey.jp/?p=153897588</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://pc.casey.jp/archives/153897588' addthis:title='[PHP] タイムゾーン設定が有効にならない謎 '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>BlueOnyx でテストサーバーを構築して連続的にCMS を再評価している。SOY CMS2 を試用したとき、タイムゾーン関係のエラーが雪崩のごとく表示された。 エラー例 Warning: date_default_timezone_get(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. 各種設定方法 php.ini で設定する date.timezone="Asia/Tokyo" .htaccess で設定する php_value date.timezone "Asia/Tokyo" php で設定する date_default_timezone_set('Asia/Tokyo'); 有効にならない不思議 &#8220;Etc/GMT+9&#8243;というタイムゾーンも使えるようなことがPHPマニュアルにあるんだけど、 実際はdate_default_timezone_set()、php.iniどちらに設定しても機能しなかった。 php_timezonedb.dllとか入れてみたけど駄目。 謎。 （「タイムゾーンの設定 &#8211; はらぐろブログラマン」より引用） 上記が同じ事を指しているか不明だが、少なくとも筆者環境では（BlueOnyx 上の）最上位php.ini を書き換えてもサイトごとのphp.ini を書き換えても.htaccess [...]]]></description>
		<wfw:commentRss>http://pc.casey.jp/archives/153897588/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IPアドレスから国や地域の情報を取得する</title>
		<link>http://pc.casey.jp/archives/2911</link>
		<comments>http://pc.casey.jp/archives/2911#comments</comments>
		<pubDate>Mon, 20 Sep 2010 15:55:56 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[ip]]></category>
		<category><![CDATA[perl]]></category>

		<guid isPermaLink="false">http://pc.casey.jp/?p=2911</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://pc.casey.jp/archives/2911' addthis:title='IPアドレスから国や地域の情報を取得する '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>IPアドレスから国や地域の情報を取得するためのデータベースとプログラムから利用する方法が用意されているらしい。メモ。 ◆参考文献 MaxMind &#8211; GeoLite Country &#124; Open Source IP Address to Country Database PHPでGeoIPを使えるようにする（インストール手順など） &#8211; cloned.log perlでGeoIPを利用する方法 GeoIP 関数 &#8211; PHPプロ！マニュアル この記事を読んだ人は、こんな記事にも興味をもっています空メールでプログラム起動、さくらインターネット[RT3] Request Tracker のインストール(まとめ直し)WordPress iPhone対応にしてみる &#8211; WPtouch[PHP] exe に変換する]]></description>
		<wfw:commentRss>http://pc.casey.jp/archives/2911/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>日付関連メモ｜PHP｜CakePHP｜MySQL</title>
		<link>http://pc.casey.jp/archives/2471</link>
		<comments>http://pc.casey.jp/archives/2471#comments</comments>
		<pubDate>Mon, 23 Aug 2010 06:18:12 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[Date]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://pc.casey.jp/?p=2471</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://pc.casey.jp/archives/2471' addthis:title='日付関連メモ｜PHP｜CakePHP｜MySQL '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>覚えておくと便利そうな日付関連操作のメモ。 ※PHPは5.3から日付関連の関数が強化されているので、ここに記載されているよりやりやすい方法が別にあるかもしれない。 月立ち（PHP） date(&#8220;Y-m-1&#8243;); 月末（PHP） date(&#8220;Y-m-t&#8221;); 翌月の月立ち（PHP） date(&#8220;Y-m-d&#8221;, strtotime(date(&#8220;Y-m-t&#8221;)) + (60 * 60 * 24)); date(‘y-m-1′,strtotime(‘+1 month’)); 集計（MySQL） ※ time が日付フィールド 年別 SELECT id, DATE_FORMAT(time,&#8217;%Y年&#8217;) as time1 FROM table1 GROUP BY time1 月別 SELECT id, DATE_FORMAT(time,&#8217;%Y年%m月&#8217;) as time2 FROM table1 GROUP BY time2 日別 SELECT id, DATE_FORMAT(time,&#8217;%Y年%m月%d日&#8217;) as time3 FROM table1 GROUP BY time3 CakePHP（マニュアルより引用） [...]]]></description>
		<wfw:commentRss>http://pc.casey.jp/archives/2471/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

