<?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/"
		xmlns:xhtml="http://www.w3.org/1999/xhtml"
>

<channel>
	<title>Director&#039;s Cut - art project team Blog - &#187; php</title>
	<atom:link href="http://blog.art-p.com/category/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.art-p.com</link>
	<description>ウェブディレクターの技術的な備忘録</description>
	<lastBuildDate>Fri, 16 Dec 2011 10:40:42 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.art-p.com/category/php/feed/" />
		<item>
		<title>PHPでJSON形式データを作る方法</title>
		<link>http://blog.art-p.com/php/php%e3%81%a7json%e5%bd%a2%e5%bc%8f%e3%83%87%e3%83%bc%e3%82%bf%e3%82%92%e4%bd%9c%e3%82%8b%e6%96%b9%e6%b3%95/</link>
		<comments>http://blog.art-p.com/php/php%e3%81%a7json%e5%bd%a2%e5%bc%8f%e3%83%87%e3%83%bc%e3%82%bf%e3%82%92%e4%bd%9c%e3%82%8b%e6%96%b9%e6%b3%95/#comments</comments>
		<pubDate>Fri, 16 Dec 2011 10:39:24 +0000</pubDate>
		<dc:creator>art project team</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[プログラム]]></category>

		<guid isPermaLink="false">http://blog.art-p.com/?p=697</guid>
		<description><![CDATA[ワードプレスでajaxでデータを扱う必要があり、どうにかしてphpで取得したデータをjson形式にできないかを模索していた所、json_encode()という関数があるということを知ったのでやってみた。 まず、データを取 [...]]]></description>
			<content:encoded><![CDATA[<p>ワードプレスでajaxでデータを扱う必要があり、どうにかしてphpで取得したデータをjson形式にできないかを模索していた所、json_encode()という関数があるということを知ったのでやってみた。</p>
<p><span id="more-697"></span><br />
まず、データを取得するためのファイルを作ります(仮にdata.php)。<br />
ファイルの中のスクリプトは下記のような感じ</p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:100%;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">&lt;?php</span><br />
<span style="color: #000088;">$data</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #000088;">$data</span> <span style="color: #339933;">=</span> <span style="color: #009933; font-style: italic;">/** ここにデータ取得処理を書く **/</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #000088;">$json</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/json_encode"><span style="color: #990000;">json_encode</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$data</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<a href="http://www.php.net/header"><span style="color: #990000;">header</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Content-Type:application/x-javascript;charset=utf-8&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #b1b100;">echo</span> <span style="color: #000088;">$json</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<p>データ処理を除けばこれだけです。<br />
これをjQueryの$.ajax関数などを使って呼び出して使えばjson形式でデータが返ってきます。<br />
jQueryで設定したパラメータを受け取る場合は$_GET['xxx']や$_POST['xxx']で取得すればOKです。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.art-p.com/php/php%e3%81%a7json%e5%bd%a2%e5%bc%8f%e3%83%87%e3%83%bc%e3%82%bf%e3%82%92%e4%bd%9c%e3%82%8b%e6%96%b9%e6%b3%95/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.art-p.com/php/php%e3%81%a7json%e5%bd%a2%e5%bc%8f%e3%83%87%e3%83%bc%e3%82%bf%e3%82%92%e4%bd%9c%e3%82%8b%e6%96%b9%e6%b3%95/" />
	</item>
		<item>
		<title>[ZendFramework]URLを実際のものとは違うカタチで表示する方法</title>
		<link>http://blog.art-p.com/php/zendframeworkurl%e3%82%92%e5%ae%9f%e9%9a%9b%e3%81%ae%e3%82%82%e3%81%ae%e3%81%a8%e3%81%af%e9%81%95%e3%81%86%e3%82%ab%e3%82%bf%e3%83%81%e3%81%a7%e8%a1%a8%e7%a4%ba%e3%81%99%e3%82%8b%e6%96%b9%e6%b3%95/</link>
		<comments>http://blog.art-p.com/php/zendframeworkurl%e3%82%92%e5%ae%9f%e9%9a%9b%e3%81%ae%e3%82%82%e3%81%ae%e3%81%a8%e3%81%af%e9%81%95%e3%81%86%e3%82%ab%e3%82%bf%e3%83%81%e3%81%a7%e8%a1%a8%e7%a4%ba%e3%81%99%e3%82%8b%e6%96%b9%e6%b3%95/#comments</comments>
		<pubDate>Wed, 06 Jul 2011 11:21:29 +0000</pubDate>
		<dc:creator>art project team</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[フェスティバ!!]]></category>
		<category><![CDATA[フレームワーク]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[ZendFramework]]></category>
		<category><![CDATA[フェスティバ]]></category>

		<guid isPermaLink="false">http://blog.art-p.com/?p=688</guid>
		<description><![CDATA[フェスティバ!!でも使ってますが、本来はhttp://hogehoge.jp/user?id=1のようなアドレスをtwitterなどのようにhttp://hogehoge.jp/!/usernameというようなアドレスで [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.festiva.biz/" target="_blank">フェスティバ!!</a>でも使ってますが、本来はhttp://hogehoge.jp/user?id=1のようなアドレスをtwitterなどのようにhttp://hogehoge.jp/!/usernameというようなアドレスで表示させる方法。</p>
<p>※ZenfFrameworkでの方法<br />
<span id="more-688"></span><br />
まず、public/index.phpに独自ルートの構築をします。</p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:100%;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666; font-style: italic;">//独自ルート用のコンポーネント呼び出し</span><br />
<span style="color: #b1b100;">require_once</span> <span style="color: #0000ff;">'Zend/Controller/front.php'</span><span style="color: #339933;">;</span><br />
<span style="color: #b1b100;">require_once</span> <span style="color: #0000ff;">'Zend/Controller/Router/Route.php'</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #666666; font-style: italic;">//独自ルートの構築</span><br />
<span style="color: #000088;">$front</span> <span style="color: #339933;">=</span> Zend_Controller_Front<span style="color: #339933;">::</span><span style="color: #004000;">getInstance</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$router</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$front</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getRouter</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$route</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Zend_Controller_Router_Route<span style="color: #009900;">&#40;</span><br />
&nbsp; <span style="color: #0000ff;">'!/:username'</span><span style="color: #339933;">,</span><br />
&nbsp; <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'controller'</span><span style="color: #339933;">=&gt;</span><span style="color: #0000ff;">'user'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'action'</span><span style="color: #339933;">=&gt;</span><span style="color: #0000ff;">'index'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'username'</span><span style="color: #339933;">=&gt;</span><span style="color: #009900; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #666666; font-style: italic;">//独自ルートをルータに定義</span><br />
<span style="color: #000088;">$router</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">addRoute</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'user'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$route</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<p>手順としては、独自ルートのコンポーネントを呼び出し、<br />
どこのコントローラーとどこのアクションをどんなアドレスに変更するかを設定し、<br />
実際に反映できるように定義すればOK</p>
<p> &#8216;username&#8217;=>null　はデフォルトの値を設定する場合に記述。<br />
デフォルトがない場合はnullにしておく。</p>
<p>上記の場合、userというコントロールのindexアクションのルートを変更しています。<br />
その際のパラメータ名は[username]と設定しています。<br />
http://hogehoge.jp/user?id=1 というアドレスを http://hogehoge.jp/!/abcd というURLで表示できます。<br />
※abcdがusernameパラメータです。</p>
<p>URLルートを変更する場合 http://hogehoge.jp/xxxxx というのは避け、<br />
http://hogehoge.jp/abc/xxxx のように必ず擬似ディレクトリを置くようにしてください。<br />
その際に、絶対に他のコンテンツと同じものにはしないでください。</p>
<p>値を取得する際は下記で取得できます。<br />
上記を例に本来のコントローラー(UserController.php)のindexActionで値を取得</p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:100%;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> indexAction<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span><br />
&nbsp; <span style="color: #000088;">$hogehoge</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getRequest</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">username</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
<p>余談ですが、「!」は使えましたがtwitterのように「#」は使えませんでした。<br />
制限があるのだろうか？？</p>
<p>ちなみに、<a href="http://www.festiva.biz/" target="_blank">フェスティバ!!</a>の場合は<a href="http://www.festiva.biz/!/artprojectteam" target="_blank">http://www.festiva.biz/!/artprojectteam</a>というように使っています。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.art-p.com/php/zendframeworkurl%e3%82%92%e5%ae%9f%e9%9a%9b%e3%81%ae%e3%82%82%e3%81%ae%e3%81%a8%e3%81%af%e9%81%95%e3%81%86%e3%82%ab%e3%82%bf%e3%83%81%e3%81%a7%e8%a1%a8%e7%a4%ba%e3%81%99%e3%82%8b%e6%96%b9%e6%b3%95/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.art-p.com/php/zendframeworkurl%e3%82%92%e5%ae%9f%e9%9a%9b%e3%81%ae%e3%82%82%e3%81%ae%e3%81%a8%e3%81%af%e9%81%95%e3%81%86%e3%82%ab%e3%82%bf%e3%83%81%e3%81%a7%e8%a1%a8%e7%a4%ba%e3%81%99%e3%82%8b%e6%96%b9%e6%b3%95/" />
	</item>
		<item>
		<title>ブログをリニューアルしました。</title>
		<link>http://blog.art-p.com/%e9%9b%91%e8%a8%98/%e3%83%96%e3%83%ad%e3%82%b0%e3%82%92%e3%83%aa%e3%83%8b%e3%83%a5%e3%83%bc%e3%82%a2%e3%83%ab%e3%81%97%e3%81%be%e3%81%97%e3%81%9f%e3%80%82/</link>
		<comments>http://blog.art-p.com/%e9%9b%91%e8%a8%98/%e3%83%96%e3%83%ad%e3%82%b0%e3%82%92%e3%83%aa%e3%83%8b%e3%83%a5%e3%83%bc%e3%82%a2%e3%83%ab%e3%81%97%e3%81%be%e3%81%97%e3%81%9f%e3%80%82/#comments</comments>
		<pubDate>Thu, 17 Mar 2011 12:51:28 +0000</pubDate>
		<dc:creator>art project team</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[プログラム]]></category>
		<category><![CDATA[ワードプレス]]></category>
		<category><![CDATA[独自サービス]]></category>
		<category><![CDATA[雑記]]></category>

		<guid isPermaLink="false">http://blog.art-p.com/?p=666</guid>
		<description><![CDATA[最近は宣伝ばかりの当ブログですみません。 今回も宣伝です。 ご覧の通りブログをリニューアルしました。 今回はリキッドレイアウトという手法を使って作成しています。 ブラウザの横幅によってサイズが変わります(最小サイズは決ま [...]]]></description>
			<content:encoded><![CDATA[<p>最近は宣伝ばかりの当ブログですみません。<br />
今回も宣伝です。</p>
<p>ご覧の通りブログをリニューアルしました。</p>
<p>今回はリキッドレイアウトという手法を使って作成しています。<br />
ブラウザの横幅によってサイズが変わります(最小サイズは決まってますよ)。</p>
<p>最近の流行に乗っかったといえばまぁ、間違いではないですｗ<br />
個人的にはブログやECサイトはリキッドレイアウトに即していると思いますが、コーポレートサイトには合わないと思っています。<br />
これは単純に1ページあたりの情報量の違いがあるからだと思います。</p>
<p>まぁ、そんなこんなで日々勉強の毎日です。<br />
本業ではディレクター一色なので、なかなか制作をする時間はありませんが、いざ「やりたい！｣という時に必要な技術を揮えるように努力していかねばなりませんですな。<br />
まだまだ日進月歩の業界なのでアンテナは常に張り巡らせないと！</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.art-p.com/%e9%9b%91%e8%a8%98/%e3%83%96%e3%83%ad%e3%82%b0%e3%82%92%e3%83%aa%e3%83%8b%e3%83%a5%e3%83%bc%e3%82%a2%e3%83%ab%e3%81%97%e3%81%be%e3%81%97%e3%81%9f%e3%80%82/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.art-p.com/%e9%9b%91%e8%a8%98/%e3%83%96%e3%83%ad%e3%82%b0%e3%82%92%e3%83%aa%e3%83%8b%e3%83%a5%e3%83%bc%e3%82%a2%e3%83%ab%e3%81%97%e3%81%be%e3%81%97%e3%81%9f%e3%80%82/" />
	</item>
		<item>
		<title>ホームページリニューアルしました</title>
		<link>http://blog.art-p.com/%e9%9b%91%e8%a8%98/%e3%83%9b%e3%83%bc%e3%83%a0%e3%83%9a%e3%83%bc%e3%82%b8%e3%83%aa%e3%83%8b%e3%83%a5%e3%83%bc%e3%82%a2%e3%83%ab%e3%81%97%e3%81%be%e3%81%97%e3%81%9f/</link>
		<comments>http://blog.art-p.com/%e9%9b%91%e8%a8%98/%e3%83%9b%e3%83%bc%e3%83%a0%e3%83%9a%e3%83%bc%e3%82%b8%e3%83%aa%e3%83%8b%e3%83%a5%e3%83%bc%e3%82%a2%e3%83%ab%e3%81%97%e3%81%be%e3%81%97%e3%81%9f/#comments</comments>
		<pubDate>Sun, 27 Feb 2011 13:17:43 +0000</pubDate>
		<dc:creator>art project team</dc:creator>
				<category><![CDATA[CM]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[デザイン]]></category>
		<category><![CDATA[ホームページ制作]]></category>
		<category><![CDATA[雑記]]></category>
		<category><![CDATA[XHTML]]></category>
		<category><![CDATA[プログラム]]></category>
		<category><![CDATA[制作]]></category>

		<guid isPermaLink="false">http://blog.art-p.com/?p=659</guid>
		<description><![CDATA[つい先日、フェスティバ!!をリリースしましたが、それに伴ってホームページもリニューアルしました。 本当はフェスティバ!!リリースと同時にしたかったけど、思い立ったのが1月下旬だったので、残念ながら間に合わず。。。 結構突 [...]]]></description>
			<content:encoded><![CDATA[<p>つい先日、<a href="http://www.festiva.biz/" target="_blank">フェスティバ!!</a>をリリースしましたが、それに伴って<a href="http://art-p.com/" target="_blank">ホームページ</a>もリニューアルしました。<br />
本当はフェスティバ!!リリースと同時にしたかったけど、思い立ったのが1月下旬だったので、残念ながら間に合わず。。。<br />
結構突貫で制作したので行き当たりばったりで制作してます(前の記事にえらそうなことを書いてるにもかかわらず・・・)。</p>
<p>ともあれ、新ホームページもよろしくお願いいたします。<br />
<img src="http://blog.art-p.com/wp-content/uploads/2011/02/art-p.jpg" title="art-p" width="394" height="422" class="alignnone size-full wp-image-660" /></p>
<p>さて、次はこのブログのリニューアルもしなくては…。<br />
1日で作ったデザインなのでかなり欠陥があるので、その辺なんとかしなければ。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.art-p.com/%e9%9b%91%e8%a8%98/%e3%83%9b%e3%83%bc%e3%83%a0%e3%83%9a%e3%83%bc%e3%82%b8%e3%83%aa%e3%83%8b%e3%83%a5%e3%83%bc%e3%82%a2%e3%83%ab%e3%81%97%e3%81%be%e3%81%97%e3%81%9f/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.art-p.com/%e9%9b%91%e8%a8%98/%e3%83%9b%e3%83%bc%e3%83%a0%e3%83%9a%e3%83%bc%e3%82%b8%e3%83%aa%e3%83%8b%e3%83%a5%e3%83%bc%e3%82%a2%e3%83%ab%e3%81%97%e3%81%be%e3%81%97%e3%81%9f/" />
	</item>
		<item>
		<title>ZendFrameworkで意図的にエラー処理をしたいとき</title>
		<link>http://blog.art-p.com/php/zendframework%e3%81%a7%e6%84%8f%e5%9b%b3%e7%9a%84%e3%81%ab%e3%82%a8%e3%83%a9%e3%83%bc%e5%87%a6%e7%90%86%e3%82%92%e3%81%97%e3%81%9f%e3%81%84%e3%81%a8%e3%81%8d/</link>
		<comments>http://blog.art-p.com/php/zendframework%e3%81%a7%e6%84%8f%e5%9b%b3%e7%9a%84%e3%81%ab%e3%82%a8%e3%83%a9%e3%83%bc%e5%87%a6%e7%90%86%e3%82%92%e3%81%97%e3%81%9f%e3%81%84%e3%81%a8%e3%81%8d/#comments</comments>
		<pubDate>Wed, 15 Dec 2010 04:00:13 +0000</pubDate>
		<dc:creator>art project team</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[フレームワーク]]></category>
		<category><![CDATA[ZendFramework]]></category>

		<guid isPermaLink="false">http://blog.art-p.com/?p=612</guid>
		<description><![CDATA[ZendFrameworkを使用して、アクションが見つからないとかコントローラが見つからないだと500エラーを吐き出しますが、DBを使用してデータを生成する場合、アクションもコントローラもあるけどこのページはエラーにした [...]]]></description>
			<content:encoded><![CDATA[<p>ZendFrameworkを使用して、アクションが見つからないとかコントローラが見つからないだと500エラーを吐き出しますが、DBを使用してデータを生成する場合、アクションもコントローラもあるけどこのページはエラーにしたい(例えばログインしてないと見れないとか)場合の処理方法。</p>
<p><span id="more-612"></span>結構、ググりました。<br />
結論！<br />
難しい…。</p>
<p>なので、考えました。<br />
割と簡単な方法がありました。いろいろ新しくクラスを作ってオーバーライドしたりしなくてもすむ方法が！！</p>
<p>コントローラで下記のように書きます。</p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:100%;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666; font-style: italic;">//ログイン情報が空の場合</span><br />
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><a href="http://www.php.net/empty"><span style="color: #990000;">empty</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$login</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
<span style="color: #b1b100;">throw</span> <span style="color: #000000; font-weight: bold;">new</span> Zend_Exeption<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'ページが見つかりませんでした'</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">404</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
<p>といった処理を書きます。<br />
通常のthrow処理はthrow new Zend_Exeption(&#8216;ページが見つかりませんでした&#8217;);と書きますが、この後にオプションでいろいろ付け足すことが出来ます。<br />
今回の404部分はコードが入るようになっています。</p>
<p>そして、エラーアクションで値を取得します。</p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:100%;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">class</span> ErrorController <span style="color: #000000; font-weight: bold;">extends</span> Zend_Controller_Action<br />
<span style="color: #009900;">&#123;</span><br />
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> errorAction<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><br />
&nbsp;<span style="color: #009900;">&#123;</span><br />
&nbsp; <span style="color: #000088;">$errors</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span>_getParam<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'error_handler'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; <span style="color: #000088;">$code</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$errors</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">exception</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getCode</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp;<span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
<p>これで、渡した404の値が取れます。<br />
なぜとれるのかは$errorsをvar_dumpしてみればわかります。<br />
メッセージ以外にもいろいろ渡せるということがわかります。</p>
<p>そして、次にエラー処理を行います。</p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:100%;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #b1b100;">switch</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$errors</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">type</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
<span style="color: #b1b100;">case</span> Zend_Controller_Plugin_ErrorHandler<span style="color: #339933;">::</span><span style="color: #004000;">EXCEPTION_NO_ROUTE</span><span style="color: #339933;">:</span><br />
<span style="color: #b1b100;">case</span> Zend_Controller_Plugin_ErrorHandler<span style="color: #339933;">::</span><span style="color: #004000;">EXCEPTION_NO_CONTROLLER</span><span style="color: #339933;">:</span><br />
<span style="color: #b1b100;">case</span> Zend_Controller_Plugin_ErrorHandler<span style="color: #339933;">::</span><span style="color: #004000;">EXCEPTION_NO_ACTION</span><span style="color: #339933;">:</span><br />
<span style="color: #b1b100;">default</span><span style="color: #339933;">:</span><br />
&nbsp;<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$code</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">404</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getResponse</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setHttpResponseCode</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">404</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; <span style="color: #666666; font-style: italic;">//404のエラー処理</span><br />
&nbsp;<span style="color: #009900;">&#125;</span><span style="color: #b1b100;">else</span><span style="color: #009900;">&#123;</span><br />
&nbsp; <span style="color: #666666; font-style: italic;">//アプリケーションエラーの処理など</span><br />
&nbsp;<span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
<p>上記のようになります。<br />
なぜ、default内で処理するかというと、いくらコードを渡しても$errors-&gt;typeは「その他」となっているため、デフォルト内で処理をするようになります。</p>
<p>新しく関数を作成するのが面倒な人はこんなやり方でもいいのではないでしょうか？</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.art-p.com/php/zendframework%e3%81%a7%e6%84%8f%e5%9b%b3%e7%9a%84%e3%81%ab%e3%82%a8%e3%83%a9%e3%83%bc%e5%87%a6%e7%90%86%e3%82%92%e3%81%97%e3%81%9f%e3%81%84%e3%81%a8%e3%81%8d/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.art-p.com/php/zendframework%e3%81%a7%e6%84%8f%e5%9b%b3%e7%9a%84%e3%81%ab%e3%82%a8%e3%83%a9%e3%83%bc%e5%87%a6%e7%90%86%e3%82%92%e3%81%97%e3%81%9f%e3%81%84%e3%81%a8%e3%81%8d/" />
	</item>
		<item>
		<title>ZendFramework パスワード暗号化・復号化</title>
		<link>http://blog.art-p.com/%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%a0/zendframework-%e3%83%91%e3%82%b9%e3%83%af%e3%83%bc%e3%83%89%e6%9a%97%e5%8f%b7%e5%8c%96%e3%83%bb%e5%be%a9%e5%8f%b7%e5%8c%96/</link>
		<comments>http://blog.art-p.com/%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%a0/zendframework-%e3%83%91%e3%82%b9%e3%83%af%e3%83%bc%e3%83%89%e6%9a%97%e5%8f%b7%e5%8c%96%e3%83%bb%e5%be%a9%e5%8f%b7%e5%8c%96/#comments</comments>
		<pubDate>Sat, 14 Aug 2010 02:55:36 +0000</pubDate>
		<dc:creator>art project team</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[プログラム]]></category>
		<category><![CDATA[ZendFramework]]></category>

		<guid isPermaLink="false">http://blog.art-p.com/?p=585</guid>
		<description><![CDATA[ZendFrameworkのフィルターを使用してパスワードの暗号化を試してみたけど文字化けするので別の方法を試してみた。 正しいのかどうかは保障できないけど・・・。 マニュアルを見ると下記のようにするといいよー的に読めま [...]]]></description>
			<content:encoded><![CDATA[<p>ZendFrameworkのフィルターを使用してパスワードの暗号化を試してみたけど文字化けするので別の方法を試してみた。<br />
正しいのかどうかは保障できないけど・・・。<br />
<span id="more-585"></span><br />
<a href="http://framework.zend.com/manual/ja/zend.filter.set.html" target="_blank">マニュアル</a>を見ると下記のようにするといいよー的に読めました。</p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:100%;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp;<span style="color: #000088;">$filter</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Zend_Filter_Encrypt<span style="color: #009900;">&#40;</span><a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'key'</span><span style="color: #339933;">=&gt;</span><span style="color: #0000ff;">'独自キー'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'salt'</span><span style="color: #339933;">=&gt;</span><span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'vector'</span><span style="color: #339933;">=&gt;</span><span style="color: #0000ff;">'5e0s3s24'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$encode</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$filter</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">filter</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'パスワード'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<p>でも、これだと文字化けしてしまうので困った。</p>
<p>というわけで、下記のようにした。</p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:100%;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000088;">$password</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/base64_encode"><span style="color: #990000;">base64_encode</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'パスワード'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$filter</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Zend_Filter_Encrypt<span style="color: #009900;">&#40;</span><a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'key'</span><span style="color: #339933;">=&gt;</span><span style="color: #0000ff;">'独自キー'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'salt'</span><span style="color: #339933;">=&gt;</span><span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'vector'</span><span style="color: #339933;">=&gt;</span><span style="color: #0000ff;">'5e0s3s24'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$encode</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$filter</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">filter</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$password</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$pass</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/base64_encode"><span style="color: #990000;">base64_encode</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$encode</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<p>こうすることで、無事文字化けから解消されました。<br />
なんで、base64_encodeを2度使う羽目になるかは分かりませんが、どっちかだけだと文字化けしてしまいました。</p>
<p>復号化も暗号化と同じようにします。</p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:100%;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000088;">$password</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/base64_decode"><span style="color: #990000;">base64_decode</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$encode</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$filter</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Zend_Filter_Decrypt<span style="color: #009900;">&#40;</span><a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'key'</span><span style="color: #339933;">=&gt;</span><span style="color: #0000ff;">'独自キー'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'salt'</span><span style="color: #339933;">=&gt;</span><span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'vector'</span><span style="color: #339933;">=&gt;</span><span style="color: #0000ff;">'5e0s3s24'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$decode</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$filter</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">filter</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$password</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$pass</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/base64_decode"><span style="color: #990000;">base64_decode</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$decode</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<p>これで元に戻りました。</p>
<p>ちなみにvectorの文字列は適当ですが8文字でないとダメらしいです。<br />
また、指定をしないと文字化けを引き起こしてしまいました。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.art-p.com/%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%a0/zendframework-%e3%83%91%e3%82%b9%e3%83%af%e3%83%bc%e3%83%89%e6%9a%97%e5%8f%b7%e5%8c%96%e3%83%bb%e5%be%a9%e5%8f%b7%e5%8c%96/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.art-p.com/%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%a0/zendframework-%e3%83%91%e3%82%b9%e3%83%af%e3%83%bc%e3%83%89%e6%9a%97%e5%8f%b7%e5%8c%96%e3%83%bb%e5%be%a9%e5%8f%b7%e5%8c%96/" />
	</item>
		<item>
		<title>PHPでブラウザを判別する</title>
		<link>http://blog.art-p.com/php/php%e3%81%a7%e3%83%96%e3%83%a9%e3%82%a6%e3%82%b6%e3%82%92%e5%88%a4%e5%88%a5%e3%81%99%e3%82%8b/</link>
		<comments>http://blog.art-p.com/php/php%e3%81%a7%e3%83%96%e3%83%a9%e3%82%a6%e3%82%b6%e3%82%92%e5%88%a4%e5%88%a5%e3%81%99%e3%82%8b/#comments</comments>
		<pubDate>Sun, 08 Aug 2010 00:23:39 +0000</pubDate>
		<dc:creator>art project team</dc:creator>
				<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://blog.art-p.com/?p=580</guid>
		<description><![CDATA[PHPを使ったブラウザの判別方法。 いろいろやり方はあるけど今回はgetenv関数を使用。 123456$agent = getenv&#40;&#34;HTTP_USER_AGENT&#34;&#41;; if&# [...]]]></description>
			<content:encoded><![CDATA[<p>PHPを使ったブラウザの判別方法。<br />
いろいろやり方はあるけど今回はgetenv関数を使用。<br />
<span id="more-580"></span></p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:100%;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000088;">$agent</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/getenv"><span style="color: #990000;">getenv</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;HTTP_USER_AGENT&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><a href="http://www.php.net/mb_ereg"><span style="color: #990000;">mb_ereg</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;MSIE&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$agent</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; <span style="color: #666666; font-style: italic;">//IEの時の処理</span><br />
<span style="color: #009900;">&#125;</span><span style="color: #b1b100;">elseif</span><span style="color: #009900;">&#40;</span><a href="http://www.php.net/mb_ereg"><span style="color: #990000;">mb_ereg</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Firefox&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$agent</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; <span style="color: #666666; font-style: italic;">//Firefoxの時の処理</span><br />
<span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
<p>上記のように正規表現でブラウザをチェックできます。<br />
今まではereg処理でできていたけど、PHP5.3以降の場合エラーになるのでmb_eregを使用します。<br />
もっと詳細に分けたい場合はバージョンも書くとよいです。<br />
IE6のみ適用するばあいは&#8221;MSIE 6.0&#8243;とか。</p>
<p>ちなみにgetenvでHTTP_USER_AGENTを指定すると下記のような文字列が返ってきます。<br />
<strong>Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 GTB7.1 ( .NET CLR 3.5.30729) YTB730 </strong></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.art-p.com/php/php%e3%81%a7%e3%83%96%e3%83%a9%e3%82%a6%e3%82%b6%e3%82%92%e5%88%a4%e5%88%a5%e3%81%99%e3%82%8b/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.art-p.com/php/php%e3%81%a7%e3%83%96%e3%83%a9%e3%82%a6%e3%82%b6%e3%82%92%e5%88%a4%e5%88%a5%e3%81%99%e3%82%8b/" />
	</item>
		<item>
		<title>[googlemap]phpで住所から座標を割り出す</title>
		<link>http://blog.art-p.com/%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%a0/jqueryphp%e3%81%a7%e4%bd%8f%e6%89%80%e3%81%8b%e3%82%89%e5%ba%a7%e6%a8%99%e3%82%92%e5%89%b2%e3%82%8a%e5%87%ba%e3%81%99/</link>
		<comments>http://blog.art-p.com/%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%a0/jqueryphp%e3%81%a7%e4%bd%8f%e6%89%80%e3%81%8b%e3%82%89%e5%ba%a7%e6%a8%99%e3%82%92%e5%89%b2%e3%82%8a%e5%87%ba%e3%81%99/#comments</comments>
		<pubDate>Sun, 18 Jul 2010 02:53:16 +0000</pubDate>
		<dc:creator>art project team</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[プログラム]]></category>
		<category><![CDATA[API]]></category>

		<guid isPermaLink="false">http://blog.art-p.com/?p=572</guid>
		<description><![CDATA[座標を使った地図表示の記事を書きましたが、今度は住所から座標のみを取得する方法。 geocodeを使用して住所から直接地図を表示することもできるらしいのだが、まったくうまくいかなかったので、PHPを使って、住所から座標を [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.art-p.com/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0/jquerygooglemaps-v3%E3%81%A7%E5%BA%A7%E6%A8%99%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E5%9C%B0%E5%9B%B3%E3%82%92%E8%A1%A8%E7%A4%BA/" target="_blank">座標を使った地図表示</a>の記事を書きましたが、今度は住所から座標のみを取得する方法。</p>
<p>geocodeを使用して住所から直接地図を表示することもできるらしいのだが、まったくうまくいかなかったので、PHPを使って、住所から座標を取得→<a href="http://blog.art-p.com/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0/jquerygooglemaps-v3%E3%81%A7%E5%BA%A7%E6%A8%99%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E5%9C%B0%E5%9B%B3%E3%82%92%E8%A1%A8%E7%A4%BA/" target="_blank">座標を使った地図表示</a>に値を渡して地図表示という方法です。<br />
<span id="more-572"></span><br />
どうやるかというと、意外と簡単で直接geocoderにアドレスを渡し、JSONデータを受け取ったものをデコードして座標を取得するというものです。<br />
下記はPHPでの取得方法です。</p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:100%;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000088;">$latlng</span> <span style="color: #339933;">=</span><a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp;<br />
<span style="color: #000088;">$url</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;http://maps.google.com/maps/api/geocode/json?address='住所'&amp;sensor=false&quot;</span><span style="color: #339933;">;</span><br />
<span style="color: #666666; font-style: italic;">// レスポンスを取得</span><br />
<span style="color: #000088;">$res</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/file_get_contents"><span style="color: #990000;">file_get_contents</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$url</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #666666; font-style: italic;">// JSON形式から連想配列へ変換</span><br />
<span style="color: #000088;">$res_array</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/json_decode"><span style="color: #990000;">json_decode</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$res</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">TRUE</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #666666; font-style: italic;">//x座標とy座標を配列に格納</span><br />
<span style="color: #000088;">$latlng</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'lat'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$res_array</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'results'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'0'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'geometry'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'location'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'lat'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$latlng</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'lng'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$res_array</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'results'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'0'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'geometry'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'location'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'lng'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<p>関数化しておくと便利だと思います。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.art-p.com/%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%a0/jqueryphp%e3%81%a7%e4%bd%8f%e6%89%80%e3%81%8b%e3%82%89%e5%ba%a7%e6%a8%99%e3%82%92%e5%89%b2%e3%82%8a%e5%87%ba%e3%81%99/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.art-p.com/%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%a0/jqueryphp%e3%81%a7%e4%bd%8f%e6%89%80%e3%81%8b%e3%82%89%e5%ba%a7%e6%a8%99%e3%82%92%e5%89%b2%e3%82%8a%e5%87%ba%e3%81%99/" />
	</item>
		<item>
		<title>Doctrineでデータ取得する際に文字化けを直す方法。</title>
		<link>http://blog.art-p.com/%e3%83%a1%e3%83%a2/doctrine%e3%81%a7%e3%83%87%e3%83%bc%e3%82%bf%e5%8f%96%e5%be%97%e3%81%99%e3%82%8b%e9%9a%9b%e3%81%ab%e6%96%87%e5%ad%97%e5%8c%96%e3%81%91%e3%82%92%e7%9b%b4%e3%81%99%e6%96%b9%e6%b3%95%e3%80%82/</link>
		<comments>http://blog.art-p.com/%e3%83%a1%e3%83%a2/doctrine%e3%81%a7%e3%83%87%e3%83%bc%e3%82%bf%e5%8f%96%e5%be%97%e3%81%99%e3%82%8b%e9%9a%9b%e3%81%ab%e6%96%87%e5%ad%97%e5%8c%96%e3%81%91%e3%82%92%e7%9b%b4%e3%81%99%e6%96%b9%e6%b3%95%e3%80%82/#comments</comments>
		<pubDate>Sat, 10 Jul 2010 06:27:14 +0000</pubDate>
		<dc:creator>art project team</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[フレームワーク]]></category>
		<category><![CDATA[メモ]]></category>
		<category><![CDATA[ZendFramework]]></category>

		<guid isPermaLink="false">http://blog.art-p.com/?p=563</guid>
		<description><![CDATA[自分用のメモ Doctrineを使用してDBに接続して、SQLを発行したときに文字化けするので、文字化けを解消する方法。 1$db = Doctrine_Maneger::connection&#40;&#34;mys [...]]]></description>
			<content:encoded><![CDATA[<p>自分用のメモ<br />
Doctrineを使用してDBに接続して、SQLを発行したときに文字化けするので、文字化けを解消する方法。<br />
<span id="more-563"></span></p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:100%;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000088;">$db</span> <span style="color: #339933;">=</span> Doctrine_Maneger<span style="color: #339933;">::</span><span style="color: #004000;">connection</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;mysql://username:password@host/datamesename&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setCharset</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;utf8&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<p>上記でUTF8でデータを取得することが可能。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.art-p.com/%e3%83%a1%e3%83%a2/doctrine%e3%81%a7%e3%83%87%e3%83%bc%e3%82%bf%e5%8f%96%e5%be%97%e3%81%99%e3%82%8b%e9%9a%9b%e3%81%ab%e6%96%87%e5%ad%97%e5%8c%96%e3%81%91%e3%82%92%e7%9b%b4%e3%81%99%e6%96%b9%e6%b3%95%e3%80%82/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.art-p.com/%e3%83%a1%e3%83%a2/doctrine%e3%81%a7%e3%83%87%e3%83%bc%e3%82%bf%e5%8f%96%e5%be%97%e3%81%99%e3%82%8b%e9%9a%9b%e3%81%ab%e6%96%87%e5%ad%97%e5%8c%96%e3%81%91%e3%82%92%e7%9b%b4%e3%81%99%e6%96%b9%e6%b3%95%e3%80%82/" />
	</item>
		<item>
		<title>PHPで曜日の取得</title>
		<link>http://blog.art-p.com/%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%a0/php%e3%81%a7%e6%9b%9c%e6%97%a5%e3%81%ae%e5%8f%96%e5%be%97/</link>
		<comments>http://blog.art-p.com/%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%a0/php%e3%81%a7%e6%9b%9c%e6%97%a5%e3%81%ae%e5%8f%96%e5%be%97/#comments</comments>
		<pubDate>Thu, 01 Jul 2010 02:12:13 +0000</pubDate>
		<dc:creator>art project team</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[プログラム]]></category>

		<guid isPermaLink="false">http://blog.art-p.com/?p=559</guid>
		<description><![CDATA[date関数を使えば、曜日の取得は可能ですが、日本語には対応していません。 なので、日本語の曜日を取得する簡単な方法。 1234&#60;?php &#160; $day = date&#40;'w', strtotime [...]]]></description>
			<content:encoded><![CDATA[<p>date関数を使えば、曜日の取得は可能ですが、日本語には対応していません。<br />
なので、日本語の曜日を取得する簡単な方法。<br />
<span id="more-559"></span></p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:100%;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">&lt;?php</span><br />
&nbsp; <span style="color: #000088;">$day</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/date"><span style="color: #990000;">date</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'w'</span><span style="color: #339933;">,</span> <a href="http://www.php.net/strtotime"><span style="color: #990000;">strtotime</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'2010-07-01'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; <span style="color: #000088;">$weekday</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;日&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;月&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;火&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;水&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;木&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;金&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;土&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$weekday</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$day</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<p>wは0(日曜日)～6(土曜日)を返すので、返ってきた数値に対応する文字列を反映させればOK</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.art-p.com/%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%a0/php%e3%81%a7%e6%9b%9c%e6%97%a5%e3%81%ae%e5%8f%96%e5%be%97/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.art-p.com/%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%a0/php%e3%81%a7%e6%9b%9c%e6%97%a5%e3%81%ae%e5%8f%96%e5%be%97/" />
	</item>
	</channel>
</rss>

