<?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://pasero.net/~mako/blog/s/tag/php/feed" rel="self" type="application/rss+xml" />
	<link>http://pasero.net/~mako/blog</link>
	<description></description>
	<lastBuildDate>Sat, 28 Jan 2012 07:14:45 +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>異体字同一視検索</title>
		<link>http://pasero.net/~mako/blog/s/293</link>
		<comments>http://pasero.net/~mako/blog/s/293#comments</comments>
		<pubDate>Fri, 17 Jun 2011 03:00:34 +0000</pubDate>
		<dc:creator>Mako</dc:creator>
				<category><![CDATA[ことば]]></category>
		<category><![CDATA[ソフトウェア]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[日本語]]></category>

		<guid isPermaLink="false">http://pasero.net/~mako/blog/?p=293</guid>
		<description><![CDATA[PostgreSQL をバックエンドに、フロントエンドを PHP でどうにか書いて、自前のデータベースを仕事に使っています。そこでたまに異体字を同一視してほしい(たとえば「斎藤」さんだったか「齊藤」さんだったかうろ覚え) &#8230; <a href="http://pasero.net/~mako/blog/s/293">続きを読む <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://pasero.net/~mako/blog/s/77" >PostgreSQL をバックエンドに</a>、フロントエンドを PHP でどうにか書いて、自前のデータベースを仕事に使っています。そこでたまに異体字を同一視してほしい(たとえば「斎藤」さんだったか「齊藤」さんだったかうろ覚え)ときがあるのですが、それほど頻度も高くないし、人間が注意して対処(「読み」も登録しているので「さいとう」で検索)すれば乗り切れるので、つい後回しにしていました。</p>
<p>そろそろ何とかしなければ、と web を検索したところ、「<a href="http://www.karak.jp/chinese/variants.html" >異体字同一視検索</a>」を見つけました。そう、以前に調べたときにこの方と同じく「<a href="http://kanji-database.sourceforge.net/variants/variants.html" >漢字データベースの異体字データベース</a>」を見つけてはいたものの、そこからどうしようと思いながらそのままにしていたのでした。</p>
<p>さっそくそのページの説明のとおりに自分のスクリプトに組み込みました。こちらでは日本語のいわゆる旧字体があれば十分で、簡体字は必要ではないのですが、そのままで快適に機能しています。このように情報を公開していただいていることに大変感謝しています。</p>
]]></content:encoded>
			<wfw:commentRss>http://pasero.net/~mako/blog/s/293/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>第何何曜日</title>
		<link>http://pasero.net/~mako/blog/s/68</link>
		<comments>http://pasero.net/~mako/blog/s/68#comments</comments>
		<pubDate>Mon, 09 Apr 2007 10:59:24 +0000</pubDate>
		<dc:creator>Mako</dc:creator>
				<category><![CDATA[ことば]]></category>
		<category><![CDATA[ソフトウェア]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://pasero.net/~mako/blog/s/68</guid>
		<description><![CDATA[日付を尋ねる場合に「何年何月何日」のようにあいだに別の語が挟まればいいのだが、「第何何曜日」というのは言いにくい1)。次のような事情で「第何何曜日」を求める方法を検索したく、この単語でいいのだろうかと思ったが、やはり仕方 &#8230; <a href="http://pasero.net/~mako/blog/s/68">続きを読む <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>日付を尋ねる場合に「何年何月何日」のようにあいだに別の語が挟まればいいのだが、「第何何曜日」というのは言いにくい<sup><a href="#footnote-1-68" id="footnote-link-1-68" title="See the footnote.">1</a>)</sup>。次のような事情で「第何何曜日」を求める方法を検索したく、この単語でいいのだろうかと思ったが、やはり仕方ないのかこのまま書いてあるのがいくつか見つかった。ともあれ意味は通じるし、そもそも未知のところを「何」に置き換えればほぼそのまま表現できる日本語は強力だ。</p>
<p>さて、その事情というのは……うちの資源ゴミの収集日は「第 2, 4 月曜日」だ。うっかり忘れてしまうことがしばしばあるので、収集日 (の前日) に自分宛にメールを飛ばそうと考えた。<code>cron</code> では「第何何曜日」という指定はできないので、スクリプトのほうで判定する。せっかくだからメモしておく。</p>

<h3>Y 年 m 月 d 日は、その月の第 i の w 曜日か</h3>
<p>これは検索ですぐに見つかった。曜日は、PHP なら求める手段は用意されている。</p>
<div class="igBar"><span id="lphp-3"><a href="#" onclick="javascript:showPlainTxt('php-3'); return false;">PLAIN TEXT</a></span></div><div class="syntax_hilite"><span class="langName">PHP:</span><br /><div id="php-3">
<div class="php" style="font-family: monospace;"><ol><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0000ff;">$i</span> = <a href="http://www.php.net/floor"><span style="color: #000066;">floor</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$d</span><span style="color: #cc66cc;color:#800000;">+6</span><span style="color: #66cc66;">&#41;</span>/<span style="color: #cc66cc;color:#800000;">7</span><span style="color: #66cc66;">&#41;</span>;</div></li>
<li style="font-weight: bold;color:#26536A;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0000ff;">$w</span> = <a href="http://www.php.net/date"><span style="color: #000066;">date</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;w&quot;</span>, <a href="http://www.php.net/strtotime"><span style="color: #000066;">strtotime</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$Y</span> . <span style="color: #0000ff;">$m</span> . <span style="color: #0000ff;">$d</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;</div></li></ol></div>
</div></div><br />

<h3>Y 年 m 月の第 i の w 曜日は、その月の d 日か</h3>
<p>上の逆だから簡単だと思ったが、何度か試してみてようやく</p>
<div class="igBar"><span id="lphp-4"><a href="#" onclick="javascript:showPlainTxt('php-4'); return false;">PLAIN TEXT</a></span></div><div class="syntax_hilite"><span class="langName">PHP:</span><br /><div id="php-4">
<div class="php" style="font-family: monospace;"><ol><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0000ff;">$w1</span>= <a href="http://www.php.net/date"><span style="color: #000066;">date</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;w&quot;</span>, <a href="http://www.php.net/strtotime"><span style="color: #000066;">strtotime</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$Y</span> . <span style="color: #0000ff;">$m</span> . <span style="color: #ff0000;">&quot;01&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;</div></li>
<li style="font-weight: bold;color:#26536A;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0000ff;">$d</span> = <span style="color: #0000ff;">$i</span>*<span style="color: #cc66cc;color:#800000;">7</span><span style="color: #cc66cc;color:#800000;">-6</span> + <span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$w</span>+<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;color:#800000;">7</span>-<span style="color: #0000ff;">$w1</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>%<span style="color: #cc66cc;color:#800000;">7</span>;</div></li></ol></div>
</div></div><br />
<p>とした。ここで $w1 は当該月の 1 日の曜日である。$d が当該月の最大日を越えない判定が必要かもしれないが、ゴミ収集日はたいていの場合 5 回目の曜日には設定されないので省略した。</p>
<p>---</p>
<p>ところでこのために <a href="http://www.php.net/manual/ja/index.php" >PHP マニュアル</a>の<a href="http://www.php.net/manual/ja/ref.datetime.php" >日付・時刻関数</a>を見ていたら、<a href="http://www.php.net/manual/ja/function.date-sunrise.php" >日の出時刻</a>や<a href="http://www.php.net/manual/ja/function.date-sunset.php" >日の入り時刻</a>を返す関数というものまであるではないか<sup><a href="#footnote-2-68" id="footnote-link-2-68" title="See the footnote.">2</a>)</sup>。</p>
<p>現代の都市生活者には日の出・日の入り時刻より、ゴミ収集日を返す関数のほうがありがたい。……と思ったら、この日の出・日の入り時刻関数は<a href="http://sourceforge.net/projects/zmanim/" >宗教上の必要から作られ</a>たらしい。別に農耕狩猟生活のためというわけではなかった。</p>
<br /><ol class="footnotes"><li id="footnote-1-68">「第何週の何曜日」というと誤解を招く。今月はたまたま 1 日 が日曜日だからいいとして、たとえば来月 (2007年5月) の「第 2 週の月曜日」は 7 日? 14日?  <a href="#footnote-link-1-68">&#8617;</a></li><li id="footnote-2-68">残念ながらここのサーバは PHP のバージョンが 4 なので、これらを使えない。  <a href="#footnote-link-2-68">&#8617;</a></li></ol>]]></content:encoded>
			<wfw:commentRss>http://pasero.net/~mako/blog/s/68/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

