<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>Gpso.info 開発ブログ</title>
    <link rel="alternate" type="text/html" href="http://blog.gpso.info/" />
    <link rel="self" type="application/atom+xml" href="http://blog.gpso.info/atom.xml" />
    <id>tag:blog.gpso.info,2008-08-21://3</id>
    <updated>2008-08-20T19:18:59Z</updated>
    <subtitle>全国オービスマップ - Gpso.info</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type Pro 4.2-ja</generator>

<entry>
    <title>Gpso.infoリニューアルしました</title>
    <link rel="alternate" type="text/html" href="http://blog.gpso.info/2006/09/gpsoinfo.html" />
    <id>tag:blog.gpso.info,2006://1.20</id>

    <published>2006-09-07T18:42:08Z</published>
    <updated>2008-08-20T19:18:59Z</updated>

    <summary>暫定のGoogle風画面からオリジナルのブログ風サイトに生まれ変わりました。 I...</summary>
    <author>
        <name></name>
        
    </author>
    
        <category term="近状報告" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.gpso.info/">
        <![CDATA[<p>暫定のGoogle風画面からオリジナルのブログ風サイトに生まれ変わりました。<br />
InternetExplorer6 と Firefox 1.5で動作確認しております。<br />
同時に・・</p>

<p>　GoogleMapsAPIをバージョンアップし、航空写真がより鮮明になりました！</p>

<p>これがスゴイ。東京周辺は最大倍率まで拡大すると・・<br />
オービスらしきものが見えてしまいます。</p>

<p>眺めるだけでも楽しいGoogleMaps。是非オービスを探してみてください。</p>]]>
        
    </content>
</entry>

<entry>
    <title>firefoxでiframeをlocation.hrefしたい</title>
    <link rel="alternate" type="text/html" href="http://blog.gpso.info/2006/09/firefoxiframelocationhref.html" />
    <id>tag:blog.gpso.info,2006://1.21</id>

    <published>2006-09-07T18:08:30Z</published>
    <updated>2008-07-04T21:40:33Z</updated>

    <summary><![CDATA[&lt;IFRAME src=&quot;no.html&quot; width...]]></summary>
    <author>
        <name></name>
        
    </author>
    
        <category term="JavaScript + Ajax" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.gpso.info/">
        <![CDATA[<p>&lt;IFRAME src=&quot;no.html&quot; width=&quot;500&quot; height=&quot;150&quot; frameborder=&quot;0&quot; id=&quot;ifr&quot;&gt;&lt;/IFRAME&gt;<br />

というIFRAMEタグがあったとしましょう。<br />
IFRAME内のURLを変更する場合、IEなら<br />
<blockquote>ifr.location.href = &quot;移動したいページ&quot;;</blockquote><br />
で良いのですが、Firefoxはうまくいきません。<br />
Firefoxなら<BR><br />
<blockquote>document.getElementById(&quot;ifr&quot;).src = &quot;移動したいページ&quot;;</blockquote><br />

と指定します。<br />
下の方法はIEでも使えるのでこちらで統一すると良いかもしれません。</p>]]>
        
    </content>
</entry>

<entry>
    <title>言及リンクがあるのにトラックバックできない件</title>
    <link rel="alternate" type="text/html" href="http://blog.gpso.info/2006/08/excite_blog_.html" />
    <id>tag:blog.gpso.info,2006://1.19</id>

    <published>2006-08-30T16:41:51Z</published>
    <updated>2008-07-04T21:38:55Z</updated>

    <summary>ホテルの口コミ.jpのトラックバックシステムを開発する上で困ったのが excit...</summary>
    <author>
        <name></name>
        
    </author>
    
        <category term="その他" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.gpso.info/">
        <![CDATA[<p><a href="http://xn--u9jth3b6dxa3ez495a.jp">ホテルの口コミ.jp</a>のトラックバックシステムを開発する上で困ったのが<br />
excite blog の「リンクがないトラックバックを受け付けない」設定の回避について。</p>

<p>記事中に<br />
&lt;A href=&quot;http://xxx.exblog.jp/xxx&quot;&gt;xxx&lt;/A&gt;<br />
として相手ブログへの言及リンクを含ませても「言及リンクなし」エラーが発生する。</p>

<p>原因をいろいろと調査したところ<br />
AタグのAが大文字だとリンクタグとして認識していないことがわかった。</p>

<p>&lt;a href=&quot;http://xxx.exblog.jp/xxx&quot;&gt;xxx&lt;/a&gt;<br />
であれば言及リンクとして認識した。</p>

<p>PerlであれPHPであれ、プログラム上で一文字追加するだけで<br />
大文字も同様に認識できるのに<br />
exblogのシステム担当者にはもう少し頑張ってほしいですね。</p>

<p>exblog TB 文字化け問題もあったし、exblogに対応させるのに苦労しました。</p>

<p>【追記】<br />
と思ったら今度はseesaaブログでの言及リンクが認識しなくなった。<br />
どうやらseesaaは&lt;A&gt;でないと言及リンクとみなさないようです。<br />
ということで全てのブログの言及リンクを回避する為に&lt;A&gt;と&lt;a&gt;二通り書くことにしました。</p>]]>
        
    </content>
</entry>

<entry>
    <title>GMaps新技術超高速表示！宿マップ</title>
    <link rel="alternate" type="text/html" href="http://blog.gpso.info/2006/08/post_13.html" />
    <id>tag:blog.gpso.info,2006://1.18</id>

    <published>2006-08-26T10:50:12Z</published>
    <updated>2008-07-04T21:37:36Z</updated>

    <summary>世界初の簡易マーカー＆データベースを導入し、 地図を動かす度に高速に検索＆表示さ...</summary>
    <author>
        <name></name>
        
    </author>
    
        <category term="近状報告" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.gpso.info/">
        <![CDATA[<p>世界初の簡易マーカー＆データベースを導入し、<br />
地図を動かす度に高速に検索＆表示されるシステムは注目です。<br />
好評ならGpso.infoでも同様のシステムを導入予定です。</p>

<p>もしこの記事を見た方がいらっしゃいましたら、ぜひ訪れてみてください。<br />
ご要望があれば、このサイトでテクニックを公開していきます。</p>

<p>クチコミ宿マップ（ホテル検索）<br />
<a href="http://xn--u9jth3b6dxa3ez495a.jp">http://ホテルの口コミ.jp/</a></p>]]>
        
    </content>
</entry>

<entry>
    <title>速度警告板はオービスですか？</title>
    <link rel="alternate" type="text/html" href="http://blog.gpso.info/2006/08/post_12.html" />
    <id>tag:blog.gpso.info,2006://1.17</id>

    <published>2006-08-11T19:15:45Z</published>
    <updated>2008-07-04T21:35:50Z</updated>

    <summary>速度警告板の表示（「○○kmオーバー」「速度落とせ」など）はあくまで警告です。 ...</summary>
    <author>
        <name></name>
        
    </author>
    
        <category term="オービスの基礎知識" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.gpso.info/">
        <![CDATA[<p>速度警告板の表示（「○○kmオーバー」「速度落とせ」など）はあくまで警告です。<br />
その警告が表示されてしまっても、その時点で速度を落とせばオービスに撮影されることはありません。<br />
速度警告板のすぐ先には本物のオービスが待ち構えていることが多いですので注意して走行しましょう。<br />
警告してくれるなんて優しいですね。</p>]]>
        
    </content>
</entry>

<entry>
    <title>オービス設置箇所に警告はありますか？</title>
    <link rel="alternate" type="text/html" href="http://blog.gpso.info/2006/08/post_11.html" />
    <id>tag:blog.gpso.info,2006://1.16</id>

    <published>2006-08-11T19:05:09Z</published>
    <updated>2008-07-04T21:35:13Z</updated>

    <summary>被写体（違反運転者）にも肖像権が存在するため、オービスを設置している道路には、警...</summary>
    <author>
        <name></name>
        
    </author>
    
        <category term="オービスの基礎知識" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.gpso.info/">
        <![CDATA[<p><IMG src="http://ja.wikipedia.org/upload/thumb/3/3c/Orbis_warning-board_at_Meishin.jpg/250px-Orbis_warning-board_at_Meishin.jpg" width="250" height="188" align="left">被写体（違反運転者）にも肖像権が存在するため、オービスを設置している道路には、警告を示す看板がオービス設置箇所の事前に設置してあります。<br />
なお、オービス自体にライトアップはされないため、夜間では見落としやすいので注意しましょう。</p>]]>
        
    </content>
</entry>

<entry>
    <title>撮影された瞬間は自分でわかりますか？</title>
    <link rel="alternate" type="text/html" href="http://blog.gpso.info/2006/08/post_10.html" />
    <id>tag:blog.gpso.info,2006://1.15</id>

    <published>2006-08-11T18:53:23Z</published>
    <updated>2008-07-04T21:34:33Z</updated>

    <summary>違反事実を認識させるために撮影の瞬間に強烈な赤色のフラッシュが炊かれます。 気づ...</summary>
    <author>
        <name></name>
        
    </author>
    
        <category term="オービスの基礎知識" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.gpso.info/">
        <![CDATA[<p>違反事実を認識させるために撮影の瞬間に強烈な赤色のフラッシュが炊かれます。<br />
気づかない間に撮影されていた、ということはまずないでしょう。<br />
ですので弱い白いフラッシュ等は見間違いである可能性が高いです。</p>]]>
        
    </content>
</entry>

<entry>
    <title>オービスっぽいものがあるんですが？</title>
    <link rel="alternate" type="text/html" href="http://blog.gpso.info/2006/08/post_9.html" />
    <id>tag:blog.gpso.info,2006://1.14</id>

    <published>2006-08-11T18:39:56Z</published>
    <updated>2008-07-04T21:33:52Z</updated>

    <summary>オービスに似ているものとして「自動車ナンバー自動読取装置 」（通称：Ｎシステム）...</summary>
    <author>
        <name></name>
        
    </author>
    
        <category term="オービスの基礎知識" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.gpso.info/">
        <![CDATA[<p><IMG src="http://ja.wikipedia.org/upload/thumb/6/6a/N-system_at_Meishin.jpg/250px-N-system_at_Meishin.jpg" width="250" height="188" align="left">オービスに似ているものとして「自動車ナンバー自動読取装置 」（通称：Ｎシステム）があります。<br />
これはオービスとは違い、自動車のナンバープレートを自動で読み取るだけの装置で、手配車輌の追跡にしか使用されません。<br />
速度も記録しているらしいですが、今のところＮシステムからの摘発はないようです。<br />
</p>]]>
        
    </content>
</entry>

<entry>
    <title>オービスの種類</title>
    <link rel="alternate" type="text/html" href="http://blog.gpso.info/2006/08/post_8.html" />
    <id>tag:blog.gpso.info,2006://1.11</id>

    <published>2006-08-09T20:30:07Z</published>
    <updated>2008-07-04T21:33:01Z</updated>

    <summary>・レーダー式  ドップラー・レーダーを利用して車両の速度を測定する方式。車両に対...</summary>
    <author>
        <name></name>
        
    </author>
    
        <category term="オービスの基礎知識" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.gpso.info/">
        <![CDATA[<p>・レーダー式 <br />
ドップラー・レーダーを利用して車両の速度を測定する方式。車両に対して電波を照射し、反射した電波の周波数から速度を計算する。道路上空に設置したレーダーアンテナの10mほど後ろの中央分離帯または路肩に撮影装置が設置されている。欠点は、雨天時や車間距離が詰まっている場合などに反射波の受信が困難となり、まれに誤測定をすることと、常に電波を発射しているために探知機に発見されやすいこと。 <br />
・ループコイル式 <br />
道路下5cmのところに、6.9mの間隔を空けて3個のループコイルが埋め込まれている。車両は金属製であるため、ループコイルに近づくと磁界が乱れる。これを利用して、3つのループコイルの磁界の乱れの時間差と距離（6.9m）から速度を計算する。雪に弱く、北国ではあまり見られない。なお、防犯上の観点から撮影装置が網の枠で囲まれている事がほとんどで、撮影地点には白線が引かれている事が多い。探知機には発見されにくいが、ループコイルが車両の重量によって損傷を受けるため、定期的なループコイルの交換が必要である。 <br />
・Hシステム <br />
最も多く設置されている取り締まり機。初期のものは「電子画像撮影・伝送方式」と呼ばれるもので、阪神高速道路に多く設置されている。1992年に登場した2代目（高速走行抑止システム）は、CCDカメラ、赤外線ストロボ、通称「はんぺん」と呼ばれる白くて四角いレーダーが備えられており、全国で数多く見られる。名称の「H」は阪神高速の頭文字（HANSHIN EXPRESSWAY）から。 <br />
・LHシステム <br />
1994年から登場したもので、「ループコイル式Hシステム」という。Hシステムが速度計測にレーダーを使うのに対し、LHシステムは地中に埋められたループコイルを利用する。ループコイル式同様、撮影地点に白線が引かれている事が多い。Nシステムと見分けがつきにくい。名称の「L」はループコイルの頭文字（LOOP COIL）から。 <br />
・SSシステム <br />
外観はHシステムと同じだが、撮影した写真を即座に待機中のパトカーに送り、その場で検挙するという点で異なる。あまり普及していない。 <br />
・光電管式 <br />
ループコイルの代わりに光源と光電管を設置し（または光源と光電管を隣り合わせて設置、対向に反射板を設置し）、車両が通過する時間を測定する方式。汚れに弱いことと、複数車線での取り締まりが困難であることから普及はしなかった。 </p>

<p>http://ja.wikipedia.org/wiki/%E8%87%AA%E5%8B%95%E9%80%9F%E5%BA%A6%E9%81%95%E5%8F%8D%E5%8F%96%E7%B7%A0%E8%A3%85%E7%BD%AE<br />
から引用</p>]]>
        
    </content>
</entry>

<entry>
    <title>オービスとは何ですか？</title>
    <link rel="alternate" type="text/html" href="http://blog.gpso.info/2006/08/post_7.html" />
    <id>tag:blog.gpso.info,2006://1.10</id>

    <published>2006-08-09T20:15:27Z</published>
    <updated>2008-07-04T21:30:21Z</updated>

    <summary>自動速度違反取締装置（じどうそくどいはんとりしまりそうち）とは、アメリカのボーイ...</summary>
    <author>
        <name></name>
        
    </author>
    
        <category term="オービスの基礎知識" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.gpso.info/">
        <![CDATA[<p>自動速度違反取締装置（じどうそくどいはんとりしまりそうち）とは、アメリカのボーイング社で開発された、道路上に設置されている速度違反を取り締まる装置。通称のオービス（ORBIS）は製品名であるが、他社の取締機も含めての通称として使われることが多い。「ネズミ捕り機」などと呼ばれる事もある。</p>

<p>主要な幹線道路や、速度違反が多発している道路などに設置されており、制限速度を超過して走行している車両を発見すると、当該車両の速度測定と、ナンバープレート及び運転者の撮影を行う。国内の場合は、違反事実を認識させるために撮影の瞬間に赤色のフラッシュが炊かれる。オービスによって速度違反が検挙されると、撮影された写真を元に、後日警察から当該車両の持ち主に出頭通知が送付される。</p>

<p>オービスを設置している道路には、警告を示す看板がオービス設置箇所の事前に設置してある。これは被写体（違反運転者）にも肖像権が存在するためであり、｢事前告知｣と｢証拠として犯罪行為の瞬間の撮影｣が設置条件として義務づけられているからである。看板の色は、各都道府県により異なる場合がある。また、在日米軍関係車両の通行が多い沖縄県では "SPEED CHECK" もしくは "SPEED CHECKED" と併記されている。</p>

<p>なお、オービス自体にライトアップはされないため、夜間では見落としやすい。</p>

<p>http://ja.wikipedia.org/wiki/%E8%87%AA%E5%8B%95%E9%80%9F%E5%BA%A6%E9%81%95%E5%8F%8D%E5%8F%96%E7%B7%A0%E8%A3%85%E7%BD%AE<br />
より引用</p>]]>
        
    </content>
</entry>

<entry>
    <title>Q&amp;A </title>
    <link rel="alternate" type="text/html" href="http://blog.gpso.info/2006/08/qa.html" />
    <id>tag:blog.gpso.info,2006://1.13</id>

    <published>2006-08-09T14:57:23Z</published>
    <updated>2008-07-04T21:32:23Z</updated>

    <summary>オービスに関する疑問・質問等ありましたらこちらのコメント欄からどうぞ...</summary>
    <author>
        <name></name>
        
    </author>
    
        <category term="告知" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.gpso.info/">
        オービスに関する疑問・質問等ありましたらこちらのコメント欄からどうぞ
        
    </content>
</entry>

<entry>
    <title>ご質問・エラー報告スレッド</title>
    <link rel="alternate" type="text/html" href="http://blog.gpso.info/2006/08/post_6.html" />
    <id>tag:blog.gpso.info,2006://1.9</id>

    <published>2006-08-08T15:58:07Z</published>
    <updated>2008-07-04T21:29:27Z</updated>

    <summary>ご質問、エラーなどありましたら、下のコメントフォームからお願いします。 または、...</summary>
    <author>
        <name></name>
        
    </author>
    
        <category term="告知" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.gpso.info/">
        <![CDATA[<p>ご質問、エラーなどありましたら、下のコメントフォームからお願いします。<br />
または、直接メールでも受け付けております。<br />
メールアドレスは携帯サイト（URＬ同じ）の下部に記載されております。</p>

<p>特に携帯サイト（DoCoMo、SoftBank(旧Vodafone)）での動作報告をお願いします。</p>

<p>※お答えできない質問は、掲載、返信されません。予めご了承ください。<br />
※投稿の非公開をご希望であればその旨をご記入ください。一般公開されません。</p>]]>
        
    </content>
</entry>

<entry>
    <title>情報提供を宜しくお願いいたします</title>
    <link rel="alternate" type="text/html" href="http://blog.gpso.info/2006/08/post_5.html" />
    <id>tag:blog.gpso.info,2006://1.8</id>

    <published>2006-08-08T15:34:15Z</published>
    <updated>2008-07-04T21:28:40Z</updated>

    <summary>当サイト「Gpso.info」では皆様からの情報提供で成り立っております。 --...</summary>
    <author>
        <name></name>
        
    </author>
    
        <category term="近状報告" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.gpso.info/">
        <![CDATA[<p>当サイト「Gpso.info」では皆様からの情報提供で成り立っております。</p>

<p>----------<br />
匿名の方数名より非常にたくさんの全国のオービス設置データをご投稿いただきました。<br />
早速更新いたしますので今しばらくお待ちください。<br />
----------</p>

<p>まだまだ皆様からの情報投稿をお待ちしております。<br />
管理人登録以外の投稿情報は第三者から信憑性が評価され、<br />
100ポイントに到達次第、その情報が管理人によって「登録オービス」として掲載されます。<br />
（掲載するか否かは管理人が全て決定権を有します。）<br />
無事「登録オービス」として登録されました際には、<br />
情報提供のお礼といたしまして、携帯サイト（アドレスはＰＣと共通）でのAUGPSレーダー機能の使用期限を7日間延長させていだだきます。（ＡＵ携帯ご利用の投稿者様に限ります。予めご了承ください。）</p>

<p>投稿のお礼の内容など、変更されることがあります。</p>]]>
        
    </content>
</entry>

<entry>
    <title>AjaxでYahoo検索を二通り作る</title>
    <link rel="alternate" type="text/html" href="http://blog.gpso.info/2006/08/ajaxyahoo.html" />
    <id>tag:blog.gpso.info,2006://1.7</id>

    <published>2006-08-07T19:44:59Z</published>
    <updated>2008-07-04T21:26:16Z</updated>

    <summary>Google Maps では画面遷移のないシームレスな画像読み込みが行われます。...</summary>
    <author>
        <name></name>
        
    </author>
    
        <category term="JavaScript + Ajax" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.gpso.info/">
        <![CDATA[<p>Google Maps では画面遷移のないシームレスな画像読み込みが行われます。<br />
それにはAjaxと言われる最新技術が使われています。</p>

<p>Ajaxを使わないとシームレスな通信が不可能かと言われるとそうではありません。<br />
今まではフレームを使ってシームレスな通信を行っていました。<br />
実際に体験してもらった方が早いと思いますので以下のページをご覧ください。<br />

<a href="http://blog.gpso.info/upfile/test2/test2_1.html">Yahoo!検索 画面遷移無し(非同期通信) - フレームバージョン</a></p>

<p>このフレーム通信には、test2_1.html（親フレーム）、test2_1_sub.html（下フレーム）、test2_1_dummy.html（上フレーム（通信受信用、見えないフレーム））、test2_1.php（Web通信用）が使われています。<br />
test2_1.html<br />
<blockquote>&lt;HTML&gt;&lt;HEAD&gt;<BR><br />
&lt;META http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=Shift_JIS&quot;&gt;<BR><br />
&lt;TITLE&gt;Yahoo!検索 画面遷移無し(非同期通信) - フレームバージョン&lt;/TITLE&gt;<BR><br />

&lt;/HEAD&gt;<BR><br />
&lt;FRAMESET <em>rows=&quot;0,*&quot;</em> frameborder=&quot;0&quot; border=&quot;0&quot; framespacing=&quot;0&quot;&gt;<BR><br />
  &lt;FRAME src=&quot;test2_1_dummy.html&quot; scrolling=&quot;NO&quot; noresize marginwidth=&quot;0&quot; marginheight=&quot;0&quot; frameborder=&quot;0&quot; name=&quot;up&quot;&gt;<BR><br />

  &lt;FRAME src=&quot;test2_1_sub.html&quot; frameborder=&quot;0&quot; name=&quot;main&quot;&gt;<BR><br />
&lt;NOFRAMES&gt;<BR><br />
&lt;BODY&gt;フレームが使用できないブラウザでは実行できません&lt;/BODY&gt;<BR><br />
&lt;/NOFRAMES&gt;<BR><br />

&lt;/FRAMESET&gt;<BR><br />
&lt;/HTML&gt;</blockquote><br />
<em>rows=&quot;0,*&quot;</em>として見えないフレームを作る必要があります。<br />
test2_1_sub.html<br />
<blockquote>&lt;HTML&gt;<BR><br />
&lt;BODY&gt;<BR><br />
&lt;SCRIPT language=&quot;JavaScript&quot;&gt;<BR><br />

&lt;!--<BR><br />
function get_data(){<BR><br />
<U>&nbsp;&nbsp;</U><em>parent.up.location.href =</em> &quot;test2_1.php?key=&quot;+document.fo.yahoo.value;<BR><br />
}<BR><br />
<BR><br />
function set_data(html){<BR><br />
<U>&nbsp;&nbsp;</U>document.all(&quot;html_div&quot;).innerHTML = html;<BR><br />

}<BR><br />
//--&gt;<BR><br />
&lt;/SCRIPT&gt;<BR><br />
&lt;FORM name=&quot;fo&quot;&gt;Yahoo!検索&lt;BR&gt;&lt;INPUT size=&quot;20&quot; type=&quot;text&quot; name=&quot;yahoo&quot;&gt;&lt;INPUT type=&quot;button&quot; value=&quot;検索&quot; onclick=&quot;get_data();&quot;&gt;&lt;/FORM&gt;<BR><br />

&lt;HR&gt;<BR><br />
&lt;DIV id=&quot;html_div&quot;&gt;&lt;/DIV&gt;<BR><br />
&lt;/BODY&gt;<BR><br />
&lt;/HTML&gt;</blockquote><br />
ここでget_data()は通信開始関数、set_data()は通信受信関数です。<br />
<em>parent.up.location.href =</em>とすることで、見えない「上フレーム」を指定ページに移動させています。(ここでは検索用phpを起動します。)</p>

<p>Yahooの通信はWebページを簡単に取得できるPHPが使われています。<br />

test2_1.php<br />
<blockquote>&lt;?php<BR><br />
$key = $_GET['key'];<BR><br />
<em>$get_html_dat = file(&quot;http://search.yahoo.co.jp/search?p=$key&quot;);</em><BR><br />
$all_html_dat = &quot;&quot;;<BR><br />
for($i=0;$i&lt;count($get_html_dat);$i++){<BR><br />
<U>&nbsp;&nbsp;</U>if(!eregi(&quot;<em>&lt;li&gt;&lt;div&gt;</em>&quot;,$get_html_dat[$i])){continue;}<BR><br />

<U>&nbsp;&nbsp;</U>$get_html_dat[$i] = <em>ereg_replace('&quot;', &quot;&quot;, $get_html_dat[$i]);</em><BR><br />
<U>&nbsp;&nbsp;</U>$all_html_dat .= rtrim($get_html_dat[$i]);<BR><br />
}<BR><br />
<BR><br />
echo &quot;&lt;HTML&gt;&lt;BODY&gt;&lt;SCRIPT&gt;<em>parent.main.set_data(\&quot;$all_html_dat\&quot;);</em>&lt;/SCRIPT&gt;&lt;/BODY&gt;&lt;/HTML&gt;&quot;;<BR><br />

<BR><br />
?&gt;<BR><br />
</blockquote><br />
PHPは、<em>$get_html_dat = file(・・・);</em>のたった一行で$get_html_datに配列としてWebページを取得できます。（$get_html_dat[0]は一行目、$get_html_dat[1]には二行目・・と格納されています。）<br />
また、結果を表示する際に、取得したデータをそのまま表示するのではなく、<em>&lt;li&gt;&lt;div&gt;</em>がある行のみを表示し、存在しない行は飛ばします。<br />
<em>ereg_replace('&quot;', &quot;&quot;, $get_html_dat[$i]);</em>では、JavaScriptエラーの原因となるダブルクォーテーション（"）を変換しています。<br />

最後に<em>parent.main.set_data(\&quot;$all_html_dat\&quot;);</em>で、test2_1_sub.htmlのset_data()関数を引数（検索結果データ）込みで実行します。<br />
そうすると画面に表示されるというわけです。</p>

<p>ちなみにtest2_1_dummy.htmlは何も書く必要はありません。（ダミーファイルです。）</p>

<p>さて、このようにフレームを用いた場合、ほとんどのブラウザで動作するという利点（携帯のフルブラウザでも可能です。たとえば<a href="http://ca.happy.nu/">こちら</a>）がありますがデメリットとして、多くのファイルを用意する必要があり、煩わしいものとなっています。</p>

<p>そこでAjaxを使ってみましょう。サンプルを見てみるとわかりますが、動作はフレーム版とほぼ同じです。<br />
<a href="http://blog.gpso.info/upfile/test2/test2_2.html">Yahoo!検索 画面遷移無し(非同期通信) - Ajaxバージョン</a></p>

<p>この方法だと、test2_2.html（メインファイル、通信受信兼）、test2_2.php（Web通信用）と、とても少ないファイルで通信できます。<br />
ちなみにAjax共通関数に関しては<a href="http://www.openspc2.org/JavaScript/Ajax/Ajax_study/">こちら</a>を参照しました。</p>

<p>さて、内容を見ていきましょう。<br />
test2_2.html<br />
<blockquote>&lt;HTML&gt;<BR><br />

&lt;BODY&gt;<BR><br />
&lt;SCRIPT language=&quot;JavaScript&quot;&gt;<BR><br />
&lt;!--<BR><br />
function get_data(){<BR><br />
<U>&nbsp;&nbsp;</U>httpObj = <em>createXMLHttpRequest(set_data);</em><BR><br />
<U>&nbsp;&nbsp;</U>if(httpObj){<BR><br />
<U>&nbsp;&nbsp;</U><U>&nbsp;&nbsp;</U>httpObj.open(&quot;GET&quot;,&quot;test2_2.php?key=&quot;+document.fo.yahoo.value,true);<BR><br />

<U>&nbsp;&nbsp;</U><U>&nbsp;&nbsp;</U>httpObj.send(null);<BR><br />
<U>&nbsp;&nbsp;</U>}<BR><br />
}<BR><br />
<BR><br />
function <em>set_data</em>(){<BR><br />
<U>&nbsp;&nbsp;</U>if((httpObj.readyState == 4) &amp;&amp; (httpObj.status == 200)){<BR><br />
<U>&nbsp;&nbsp;</U><U>&nbsp;&nbsp;</U>html = <em>httpObj.responseText</em>;<BR><br />

<U>&nbsp;&nbsp;</U><U>&nbsp;&nbsp;</U>document.all(&quot;html_div&quot;).innerHTML = html;<BR><br />
<U>&nbsp;&nbsp;</U>}<BR><br />
}<BR><br />
<BR><br />
// HTTP通信用、共通関数<BR><br />
function createXMLHttpRequest(cbFunc){<BR><br />
<U>&nbsp;&nbsp;</U>var XMLhttpObject = null;<BR><br />
<U>&nbsp;&nbsp;</U>try{<BR><br />

<U>&nbsp;&nbsp;</U><U>&nbsp;&nbsp;</U>XMLhttpObject = new XMLHttpRequest();<BR><br />
<U>&nbsp;&nbsp;</U>}catch(e){<BR><br />
<U>&nbsp;&nbsp;</U><U>&nbsp;&nbsp;</U>try{<BR><br />
<U>&nbsp;&nbsp;</U><U>&nbsp;&nbsp;</U><U>&nbsp;&nbsp;</U>XMLhttpObject = new ActiveXObject(&quot;Msxml2.XMLHTTP&quot;);<BR><br />
<U>&nbsp;&nbsp;</U><U>&nbsp;&nbsp;</U>}catch(e){<BR><br />
<U>&nbsp;&nbsp;</U><U>&nbsp;&nbsp;</U><U>&nbsp;&nbsp;</U>try{<BR><br />
<U>&nbsp;&nbsp;</U><U>&nbsp;&nbsp;</U><U>&nbsp;&nbsp;</U><U>&nbsp;&nbsp;</U>XMLhttpObject = new ActiveXObject(&quot;Microsoft.XMLHTTP&quot;);<BR><br />

<U>&nbsp;&nbsp;</U><U>&nbsp;&nbsp;</U><U>&nbsp;&nbsp;</U>}catch(e){<BR><br />
<U>&nbsp;&nbsp;</U><U>&nbsp;&nbsp;</U><U>&nbsp;&nbsp;</U><U>&nbsp;&nbsp;</U>return null;<BR><br />
<U>&nbsp;&nbsp;</U><U>&nbsp;&nbsp;</U><U>&nbsp;&nbsp;</U>}<BR><br />
<U>&nbsp;&nbsp;</U><U>&nbsp;&nbsp;</U>}<BR><br />
<U>&nbsp;&nbsp;</U>}<BR><br />
<U>&nbsp;&nbsp;</U>if (XMLhttpObject) XMLhttpObject.onreadystatechange = cbFunc;<BR><br />
<U>&nbsp;&nbsp;</U>return XMLhttpObject;<BR><br />
}<BR><br />
//--&gt;<BR><br />

&lt;/SCRIPT&gt;<BR><br />
&lt;FORM name=&quot;fo&quot;&gt;Yahoo!検索&lt;BR&gt;&lt;INPUT size=&quot;20&quot; type=&quot;text&quot; name=&quot;yahoo&quot;&gt;&lt;INPUT type=&quot;button&quot; value=&quot;検索&quot; onclick=&quot;get_data();&quot;&gt;&lt;/FORM&gt;<BR><br />

&lt;HR&gt;<BR><br />
&lt;DIV id=&quot;html_div&quot;&gt;&lt;/DIV&gt;<BR><br />
&lt;/BODY&gt;<BR><br />
&lt;/HTML&gt;</blockquote><br />
<em>createXMLHttpRequest(・・・);</em>のカッコ内に受信後に実行される関数名を記述します。ここではset_dataを実行するようにしています。<br />
<em>httpObj.responseText</em>には受信データが入っています。後はtest2_1_sub.htmlとあまり変わりません。</p>

<p>test2_2.php<br />
<blockquote>&lt;?php<BR><br />
$key = $_GET['key'];<BR><br />
$get_html_dat = file(&quot;http://search.yahoo.co.jp/search?p=$key&quot;);<BR><br />
$all_html_dat = &quot;&quot;;<BR><br />
for($i=0;$i&lt;count($get_html_dat);$i++){<BR><br />
<U>&nbsp;&nbsp;</U>if(!eregi(&quot;&lt;li&gt;&lt;div&gt;&quot;,$get_html_dat[$i])){continue;}<BR><br />

<U>&nbsp;&nbsp;</U>$get_html_dat[$i] = <em>mb_convert_encoding($get_html_dat[$i],&quot;UTF-8&quot;,&quot;auto&quot;);</em><BR><br />
<U>&nbsp;&nbsp;</U>$all_html_dat .= $get_html_dat[$i];<BR><br />
}<BR><br />
echo $all_html_dat;<BR><br />
?&gt;</blockquote><br />
<em>mb_convert_encoding($get_html_dat[$i],&quot;UTF-8&quot;,&quot;auto&quot;);</em><br />

で、文字コードをUTF-8に変換します。そうしないと文字化けします。<br />
今回はダブルクォーテーションを変換したり、最後の出力を&lt;SCRIPT&gt;&lt;/SCRIPT&gt;で囲む必要はありません。</p>

<p>このように二通り試しましたが、あなたならどちらを使いますか？</p>]]>
        
    </content>
</entry>

<entry>
    <title>機種毎にメインページを振り分ける</title>
    <link rel="alternate" type="text/html" href="http://blog.gpso.info/2006/08/post_4.html" />
    <id>tag:blog.gpso.info,2006://1.6</id>

    <published>2006-08-03T19:00:54Z</published>
    <updated>2008-07-04T21:25:03Z</updated>

    <summary>当サイトのトップページhttp://gpso.info/は アクセスした端末によ...</summary>
    <author>
        <name></name>
        
    </author>
    
        <category term="PHP" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.gpso.info/">
        <![CDATA[<p>当サイトのトップページ<a href="http://gpso.info/">http://gpso.info/</a>は<br />
アクセスした端末によってトップページを切り替えています。<br />
Perlでも可能ですが、今回はPHPを使うことにします。</p>

<p>まずは画面の切り替えが発生するバージョンです。<br />

<em>index.php</em>と名前をつけてアップロードしてください。<br />
この他にも、各ケータイ用ページが必要です。(au.htmlやpc.htmlなど)<br />
たとえばAUのケータイでhttp://gpso.info/にアクセスするとhttp://gpso.info/au.htmlに移動します。</p>

<blockquote>&lt;?php<BR>
<BR>
$USER_AGENT = $_SERVER[&quot;HTTP_USER_AGENT&quot;];<BR>
$REMOTE_HOST = $_SERVER[&quot;REMOTE_HOST&quot;];<BR>

$REMOTE_ADDR = $_SERVER[&quot;REMOTE_ADDR&quot;];<BR>
if ($REMOTE_HOST == &quot;&quot;) { $REMOTE_HOST = gethostbyaddr($REMOTE_ADDR);}<BR>
<BR>
if(ereg(&quot;ezweb&quot;,$REMOTE_HOST) || eregi(&quot;UP\.Browser&quot;,$USER_AGENT)){<BR>
<U>&nbsp;&nbsp;</U><em>header('Location: ./au.html');</em><BR>
<BR>

}else if(eregi(&quot;DoCoMo&quot;,$USER_AGENT)){<BR>
<U>&nbsp;&nbsp;</U><em>header('Location: ./docomo.html');</em><BR>
<BR>
}else if(eregi(&quot;Vodafone&quot;,$USER_AGENT) || eregi(&quot;J-PHONE&quot;,$USER_AGENT)){<BR>
<U>&nbsp;&nbsp;</U><em>header('Location: ./vodafone.html');</em><BR>
<BR>
}else{<BR>

<U>&nbsp;&nbsp;</U><em>header('Location: ./pc.html');</em><BR>
<BR>
}<BR>
<BR>
exit;<BR>
<BR>
?&gt;</blockquote>

<p>次に画面の切り替えが発生しないバージョンです。<br />
たとえばAUのケータイでhttp://gpso.info/にアクセスするとアドレスはhttp://gpso.info/のままで、http://gpso.info/au.htmlの内容が表示されます。</p>

<blockquote>&lt;?php<BR>
<BR>
$USER_AGENT = $_SERVER[&quot;HTTP_USER_AGENT&quot;];<BR>
$REMOTE_HOST = $_SERVER[&quot;REMOTE_HOST&quot;];<BR>
$REMOTE_ADDR = $_SERVER[&quot;REMOTE_ADDR&quot;];<BR>
if ($REMOTE_HOST == &quot;&quot;) { $REMOTE_HOST = gethostbyaddr($REMOTE_ADDR);}<BR>

<BR>
if(ereg(&quot;ezweb&quot;,$REMOTE_HOST) || eregi(&quot;UP\.Browser&quot;,$USER_AGENT)){<BR>
<U>&nbsp;&nbsp;</U><em>read_html(&quot;au.html&quot;);</em><BR>
<BR>
}else if(eregi(&quot;DoCoMo&quot;,$USER_AGENT)){<BR>
<U>&nbsp;&nbsp;</U><em>read_html(&quot;docomo.html&quot;);</em><BR>

<BR>
}else if(eregi(&quot;Vodafone&quot;,$USER_AGENT) || eregi(&quot;J-PHONE&quot;,$USER_AGENT)){<BR>
<U>&nbsp;&nbsp;</U><em>read_html(&quot;vodafone.html&quot;);</em><BR>
<BR>
}else{<BR>
<U>&nbsp;&nbsp;</U><em>read_html(&quot;pc.html&quot;);</em><BR>

<BR>
}<BR>
<BR>
exit;<BR>
<BR>
//ファイルを読み込む<BR>
function <em>read_html($file)</em>{<BR>
<U>&nbsp;&nbsp;</U>$fp = fopen($file, 'r');<BR>
<U>&nbsp;&nbsp;</U>while (!feof($fp)) {<BR>

<U>&nbsp;&nbsp;</U><U>&nbsp;&nbsp;</U>$line = fgets($fp,1024);<BR>
<U>&nbsp;&nbsp;</U><U>&nbsp;&nbsp;</U>echo $line;<BR>
<U>&nbsp;&nbsp;</U>}<BR>
<U>&nbsp;&nbsp;</U>fclose($fp);<BR>
}<BR>
<BR>
?&gt;</blockquote>]]>
        
    </content>
</entry>

</feed>
