|
|
※該当の記事タイトル一覧はリンク一覧から参照できます。
パワプロクンポケット10名前: 小川 邦久 リンク: http://kunisan.jp/ 日付: 2008年2月13日 ![]() 自分にとってはファミコンのファミスタシリーズ以来の野球ゲームです。このゲームには色々とモードがありますが、まず普通の野球モードについて。久々の野球ゲームということもあるのかも知れませんが、コンピュータを相手に対戦するだけでもなかなか楽しいです。通勤電車では9イニングをプレイする時間がないので、3イニングでプレイしています。 ファミスタに比べたら操作は複雑なものの、慣れればこちらの方がより実践的にプレイできて面白く感じます。操作に慣れるまで少々時間がかかりますが、慣れるまでのプロセスも結構楽しかったりします。野球ゲームのシステムとしての完成度もかなり高く感じますね(ファミコンのファミスタと比べたら、何でも良く見えてしまうのかも知れませんけど)。 あと、選手の名前が実名なのがいいです。ファミコンのファミスタの時代は立浪が「たつまき」でしたから。各選手の昨年(2007年)の打率やホームラン数を参照できるのも、今シーズンの野球観戦に向けての勉強になります。実況中継もしゃべりまくりで、結構臨場感があります。 このゲームの目玉の一つに、Wi-Fi(無線LAN接続)で全国の人と対戦プレイができるというのがあります。私も試しにやってみました(やはり3イニングです)。初めての試合は、こちらのチームは100%西武ライオンズだったのですが、相手は読売ジャイアンツをベースにしたチームで、野茂みたいな超剛速球ピッチャーが出てきました。ただ、結局お互いに点が取れずに3イニング終了で0対0のスコアでした。2回戦目は相手が日ハムファイターズで、ほぼ純粋なプロ選手のみのオーダーでした。しかしスコアはまたしても0対0。3回戦目はこちらがチームを変えて中日ドラゴンズにしたら相手も中日ドラゴンズでした。こちらもまたまた0対0。人対人だと変化球の応酬になって、なかなか打てませんね…。まあそれでも楽しく対戦することができました。ただ自分としては、変な自作選手が出てくるよりも、純粋なプロ野球選手のみのチーム同士の対戦の方がより面白く感じます。 その選手を自作する「サクセスモード」について、時間のある人にはいいと思いますが、私は始めて5分ほどでやめてしまいました。これはRPGとかが好きな人にはいいのかも知れませんが、時間があまり取れないサラリーマンにはとてもできません。ストーリ仕立てになっているものの、内容を読む気になれず、ただ「面倒」と思ってしまいます。まあ、私自身ゲームの中で選手を育成しようと思っていないので、どのみちあまり使うつもりのないモードではありました。 サクセスモードをしないという点で、多分このゲームの魅力の半分も味わえていないのかも知れませんが、コンピュータとの対戦やWi-Fiでの見知らぬ人との対戦だけでも、十分に楽しめる「良質野球ゲーム」だということは分かりました。 ニンテンドー関連記事(リンク一覧): プチエアホッケー - プチコン4でシンプルなエアホッケーゲーム / ムカデ四匹対戦ゲーム - プチコン4でCOM対戦型ゲーム / 慣性シューティング イネルシア - プチコン4でエクセリオン風ゲーム / フルーツ好きのアルパカさん - プチコン4で物理演算系ジャンプアクションゲーム / DOTOWN画像一覧表 ミニゲーム付き (プチコン4) / ...(記事連続表示)
舞台裏での大改造名前: 小川 邦久 リンク: http://kunisan.jp/ 日付: 2008年2月12日 ![]() KUNISAN.JPサーバー内のファイル管理の徹底改善のため、ここ2週間ほど集中的に作業を行っていました。あまり表には見えてこないことではありますが、今後のKUNISAN.JPのさらなる発展(?)に向けて、かなり重要な更新作業ではありました。変更作業の内容をまとめておきます。
1)フォルダの構成変更 今まではPerlのプログラムとデータファイルは、HTMLのメインフォルダである"home"フォルダとは別個の"cgi-bin"フォルダにまとめておいてありました。しかし、同じコンテンツのホームページなのに、リンク先や画像ファイルの場所を"../../XXX"などと指定しなければいけなかったりとか、ファイルを編集する際に"home"フォルダと"cgi-bin"フォルダの間で行ったり来たりとか、Perlで生成されるデータファイルのうち画像ファイルなどの特殊なファイルは"home"フォルダに保存しないとWeb上では開けないとか、色々な不都合が生じていました。また、ファイルの場所指定の方法の違い(例:"cgi-bin"のフォルダ内から"home"を見る時には"../../XXXX"、"home"のフォルダ内から"cgi-bin"を見るときには"../XXXX"と指定)などから、テキストファイルのバッチ変換が一度に行えないという非効率なこともありました。加えて最近PHPでページを作成する機会も増えてきたのですが、データファイルが"home"フォルダに作成されたり、"cgi-bin"フォルダのものを参照したりと、非常に混沌とした状態になってしまい、さらに悪いことにPHPが"cgi-bin"フォルダで動作しないため、データの保存先をどちらにしたらいいのか、Web管理上の明確なルールを決められずにいました。 そこで今回、全てのファイルを"home"フォルダで一元管理する形に変更しました。"cgi-bin"フォルダのファイルは全て"home"フォルダに引越しです。例えばタスマニアのホームページは"home/tasmania/"と"cgi-bin/tasmania"の2箇所に分かれていたのですが、これを全て"home/tasmania"一箇所にまとめました。リンク先のアドレスも全ページ変更しました。これで今後はバッチ処理によるテキストファイル変換が容易にできるようになります。 2)HTMLの正規化 今まで私が知っていたHTMLは1997年のもので、当時はタグを大文字で表記したり、パラメータをダブルクオーテーションで括らなかったりすることも許されました。というより、当時タグは大文字が主流でしたし、パラメータをダブルクオーテーションで括らないのは、PerlやJavaScriptでプログラムが書きやすかったためです。しかし、最新のHTMLやXHTMLではこのやり方を基本的に許していません。ブラウザ上は互換性を保っていたため問題なく表示できましたが、今後いつ見れなくなってしまうか分からないまま放っておくわけにも行きません。 今回はHTMLのタグ小文字化とパラメータをダブルクオーテーションで括る作業を、何回かに分けてバッチで行いました。しかし、PerlやJavaScriptでは以下のような表記もあったりして、全て一括でバッチでやると動作しなくなる危険があったため、Perlや JavaScriptが含まれるファイルでは個別に作業を行うようにしました。 記述例(Perl): print "<a href=index.cgi?ABC=$abc&DEF=$def>\n"; バッチ変換例(エラーが発生する): print "<a href="index.cgi?ABC=$abc&DEF=$def">\n"; 手作業変換例(あくまで一例です): print '<a href="index.cgi?ABC='.$abc.'&DEF='.$def.'">'."\n"; 現時点で95%ほど作業が終わりました。細かいところはこれから一つ一つしらみつぶしにやっていくしかなさそうです。 ここからXHTML+CSSに持っていこうと考えた時期もありましたが、近々HTML5が正式に勧告されるという話もあるので、とりあえずこれ以降の作業については様子を見ながら進めようと思っています。 3)KUNISAN.JPブログ掲示板のカテゴリ編集 ブログ掲示板のカテゴリ機能(本ページ左上メニューの「Wii」、「自作PC」など)は、後から付け足した機能なので、編集は全て手作業でHTMLファイルやデータを直接変更して行っていました。ここ最近この作業の負荷が大きくなりつつあったので、クリック2~3回とテキストを1行編集するだけで、数ページ分を自動修正してくれるプログラムを作成しました(PHPで記述)。上記の作業(フォルダ構成変更+HTMLの正規化)を終えてからでないと、プログラムの変更で二度手間になってしまうため、まず上記の作業をある程度終えて、それから自動修正ページの製作にとりかかりました。これが完成したおかげで、今まで毎回10分程度かかっていたブログカテゴリ化の作業が、1分程度で終わるようになりました。 それにしても膨大な作業で、正直なところ結構疲れました。ただ、今後のファイル管理はある程度楽になりそうです。 Web管理関連記事(リンク一覧): さくらのレンタルサーバ 新サーバーへの移行 / SPF、DKIM、DMARCの設定とネームサーバー(DNS)設定のトラブル / さくらレンタルサーバーのアクセス履歴をPHPで表示 / PHPで画像のアップロード(さくらレンタルサーバーのPHPでImageMagick) / KUNISAN.JPサイトのメンテナンス(2018) / ...(記事連続表示)
Blu-ray Discドライブ: BRD-SM4B (I-Oデータ製)名前: 小川 邦久 リンク: http://kunisan.jp/ 日付: 2008年2月12日 ![]() 3年ちょっと前に購入した内蔵型のDVDマルチドライブの調子が悪く、これを機にBlu-ray Discドライブに買い替えてしまいました。相性の問題だと思いますが、今まで使っていたDVDドライブで焼いたDVD-Rが、シャープ製DVDレコーダー(2年前に購入)で再生できなかったり、逆にDVDレコーダーで焼いたDVD-RがPCで再生できなかったりする問題が多発していました。書き込み可能なDVDの形式が、プラス(+)だとかマイナス(-)だとか、乱立した時期と重なっていたこともあるのかも知れません。さて、BRD-SM4B 基本性能とはあまり直結はしませんが、マザーボードとの接続がSereal ATAなのもポイントが高いです。これでうちのPCから完全にIDEケーブルがなくなり、だいぶすっきりしました。 肝心のBlu-rayの性能の方ですが…、まだよくわかりません。うちにはBlu-rayの映画もなければ、メディア(空ディスク)さえもなく、今のところ宝の持ち腐れ的な機能になってしまっています。片面2層で50GBは魅力ではあるのですが、メディアが書換型で1枚あたり4,500円、追記型でも1枚あたり2,700円と非常に高価なので、これではまだ手をつけられません。 4年前に購入した液晶モニタもBlu-rayの映画を再生するには、かなりスペックが低すぎる感があります。今年中にはグラフィックボードと合わせて、液晶モニタも交換しようとは思っているので、その時に改めてBRD-SM4B ちなみにBlu-rayに加えてHD-DVDまで再生できるモデルもあったのですが、私はHD-DVDについては「終わった」と判断しているので、結局このモデルには手をつけませんでした。 WindowsPC関連記事(リンク一覧): EWiN ブルートゥース+2.4G USB無線両対応タッチパッド搭載折りたたみキーボード / 【2025新登場】ProtoArc Bluetooth 折りたたみ式キーボード XK01 / ブラザー(Brother)複合機 MFC-J4950DN / 息子のPCを新調 - GIGABYTE ゲーミングノート GAMING A16 CMHI2JP894SH / エレコム ワイヤレスキーボード・マウスセット TK-FDM110MBK / ...(記事連続表示)
ファミリースキー名前: 小川 邦久 リンク: http://kunisan.jp/ 日付: 2008年2月9日 ![]() スキー好きの私としては、発売前からかなり気になっていたゲームです。WiiFitもバランスWiiボードをこのゲームで使うために買ったようなものです。やり始める前には、感覚的なところがどんなものか不安ではありましたが、初めてのプレイから違和感がほとんどなく、非常に快適にゲームをすることができました。操作も容易で、ほとんどが直感的にできるものばかりです。バランスボードとの相性も、WiiFitのスキーよりも断然いい感じがします。 何よりも、このゲームをやっていると、「スキー好きの人たちでこのゲームを作ったんだな」ということがよくわかります。猛スピードでの滑降もあれば、ポールやモーグルのコースもあり、スキーの醍醐味であるスピード感やテクニックを生かしたすべりを思う存分楽しめます。 カービングの雪面を切るような感覚や、高速ターン時の体にかかる遠心力などは再現することは不可能ですが、それを差し引いたとしても、感覚的なところを「よくここまで再現できたな」という作りです。 私は本物のスキーの方では、人のいない広いコースを、大きな弧を描きながら、風圧でこれ以上スピードが出ない、と思えるほどのスピードで滑るのが好きです。ただこのゲームだと、猛スピードで人や障害物(木や雪だまりなど)を避けながら滑ってくのも中々楽しいです。間違って人に当たってしまった場合には、相手が勢いよく飛んで行ってしまいますが、まあこれはご愛敬ということで。こんなことは現実では許されないですけどね。 その他細かいところで面白いと思ったのが…、 ・たまにBGMとしてユーミンの曲が流れます。エコーの感じがまさに15年前のスキー場を思い出させてくれます。 ・山の頂上のリフト降り場の裏に、鐘を鳴らせるポイントがあります。これって、どこかのスキー場に本当にありますよね…。 ・和服を着て下駄を履いてスキーなんていう設定もできます。これで滑降したりモーグルしたりすると、絵だけで笑ってしまいます。 このゲームは30代中盤~40歳前後のバブル時代にスキーをやった世代にとっては、思わずハマってしまう内容だと思います。あの頃のスキーの良さだけをピックアップするとこんな感じになるのでしょうね。人ごみの中の数十分のリフト待ちだけは再現してほしくないですけど…。 スキー関連記事(リンク一覧): 富士見パノラマリゾート(2025年) / ピラタス蓼科スノーリゾート / ガーラ湯沢スキー場(2024-2025シーズン) / 今までに行ったことのあるスキー場まとめ(2024年) / 富士見パノラマリゾート(2024年2回目) / ...(記事連続表示) 関連カテゴリー: ニンテンドー関連記事, スキー関連記事
PHP簡易英文スペルチェッカー名前: 小川 邦久 リンク: http://kunisan.jp/ 日付: 2008年2月3日 ![]() 米国Yahoo!の"Yahoo! Spelling Suggestion API"というサービスを利用して、英文スペルチェッカーを作成してみました。 プログラムもいたってシンプルで、英文をパラメーターとしてサービスを呼び出し、戻ってきた値のXMLタグを全て取り払うだけで、結果を取り出すことができます。 今回はブログパーツとして作成してみましたが、そのコードの一部(メインの部分)を公開します。実行にはYahoo! Developer Network ( http://developer.yahoo.com/ )でアプリケーションIDを取得する必要があるのでご注意ください。 ■■簡易英文スペルチェッカー■■ <?php //英文の取得 $sentence = $_GET[SENTENCE]; //スペースをプラスに変換(アドレス用) $sentence2 = mb_eregi_replace(' ','+',$sentence); //英文受け渡し用アドレス(●XXXXXXXXXXにご自分のアプリケーションIDを入れてください) $addr = 'http://api.search.yahoo.com/WebSearchService/V1/spellingSuggestion ?appid=XXXXXXXXXX&query='.$sentence2; //自動的に\が入ることがあるので、それを除去する処理 $sentence = stripcslashes($sentence); //修正英文候補の取得 if ($sentence != "") { $result = file_get_contents($addr); //XMLタグの除去 $result = strip_tags($result); //アンダーバーの除去 $result = mb_eregi_replace('_','',$result); //改行の除去 $result = mb_eregi_replace("\n",'',$result); } //ブラウザー毎の表示領域の設定 $drow = (ereg("Firefox",$_SERVER['HTTP_USER_AGENT'])?"2":"4"); $dcol = (ereg("Firefox",$_SERVER['HTTP_USER_AGENT'])?"14":"18"); print '<b><small>単語または文章</small></b><br>'; print '<textarea rows="'.$drow.'" cols="'.$dcol.'" name="SENTENCE">'; print $sentence; print '</textarea><br>'; print '<input type="submit" value="スペルチェック"><br>'; print '<img src="blank.gif" height="10"><br>'; print '<b><small>修正候補</small></b><br>'; print '<textarea rows="'.$drow.'" cols="'.$dcol.'" onclick="this.focus(); this.select();">'; if ($result !=""){ print $result; } elseif ($sentence !="") { print '(文章のスペルが正しいか、修正候補がありません。)'; } print '</textarea><br>'; ?> ■■■■■■■■■■■■■■■ PHP関連記事(リンク一覧): さくらレンタルサーバーのアクセス履歴をPHPで表示 / PHPで画像のアップロード(さくらレンタルサーバーのPHPでImageMagick) / PHP REVERSI(オセロもどき)の続き / PHP REVERSI(リバーシ) - オセロもどきゲームの公開 / PHP版-簡易アクセスブロック(IPアドレス、ホスト名、OS、ブラウザ名で制御) / ...(記事連続表示) ![]() PHP×WebサービスAPIコネクションズをAmazon.co.jpでチェック
お土産のラーメン「博多中洲屋台一竜」の味名前: 小川 邦久 リンク: http://kunisan.jp/ 日付: 2008年2月2日 ![]() ![]() 普段はキッチンに立つことはないのですが、ラーメンだけは作るようにしています。まあ、簡単にできますからね。 味も本物の「一竜」と同様、スープは豚骨で濃厚ながらあっさりした感じが出ていました。 ラーメン関連記事(リンク一覧): 馬子禄牛肉面(神保町店)の蘭州牛肉面 / 石神井とらの特製つけ麺(石神井公園) / 麺屋 二二一(ふじい)の特製たまごかけ麺(神保町) / 一泊二日の出雲旅行 / 武蔵野アブラ学会の特濃生玉油そば / ...(記事連続表示)
2800円のスキーツアー→佐久スキーガーデンパラダ名前: 小川 邦久 リンク: http://kunisan.jp/ 日付: 2008年2月1日 ![]() ビッグホリデー主催の日帰りスキーツアーに参加してきました。しかし、ただのスキーツアーではありません。2800円の「モーニングミステリーツアー」です。この値段でスキー場までの往復のバス代と1日リフト券が付いてくるのですが、行先は当日の朝までわかりません。そして今日がツアー当日。朝7時過ぎにツアーの集合場所である池袋の文化会館に到着しました。受付を済ませてバスに向かったところ、「佐久スキーガーデンパラダ行き」との表示を発見。このスキー場は主に初心者、子供、ファミリー向けで、「やはり安いツアーでは、望みどおりのスキー場には行けないな…」と少々がっかりしてしまいました。 ちなみに、社会人で平日にこんなバスツアーに参加する人はまずいません。実際にこのツアーに参加した人は、みんな20歳前後の学生さん達だったようです。私はすっかり浮いた存在になってしまいましたが、まあ気にせずにバスではうとうとと居眠りして、気がついたらスキー場に着いていました。 佐久スキーガーデンパラダ http://www.saku-parada.jp/ 「初心者のスキー場」となめきっていたのですが、「レガートコース」と「ビバーチェコース」は、適度な中斜面で結構楽しめました(ちょっと短いですが)。気温が低いこともあって雪質もよく、気持ちよくカービングしながらのスキーを楽しむことができました。何よりも天気が良く、人が少ないのがよかったです。コーストップからの浅間山の景色も見事でした。 ということでビバーチェコースの動画を撮ってみました。デジカメなので手ぶれがひどいです。手ぶれ防止機能のついたビデオカメラならちゃんと撮れるのですかね? 佐久スキーガーデンパラダは、さすがに中上級者がガンガン滑るようなところではないと言えますが、ファミリー向けの施設は結構充実しています。ここは「北パラダ(バスツアーなどが利用)」と「南パラダ(高速道路パーキングからの直接アクセス可能)」の2つのベースがありますが、どちらにもキッズパークがあるので、スキーができない子供と一緒に来る場合も、安心して遊ばせることができます。また半日2500円で子供(6ヵ月~7歳)を預かってくれる託児所もあり、親だけスキーを楽しみたいという人にも嬉しいサービスです。ということで、個人で行く場合には、もうモーニングミステリーツアーには参加しないと思います。2800円よりは高くつきますが、4300円~5000円払えば川場や尾瀬岩鞍など、リフト券付きで自分の希望通りのスキー場に行けるので(ただし平日のみ)、次回からはそうしようと思います。 スキー関連記事(リンク一覧): 富士見パノラマリゾート(2025年) / ピラタス蓼科スノーリゾート / ガーラ湯沢スキー場(2024-2025シーズン) / 今までに行ったことのあるスキー場まとめ(2024年) / 富士見パノラマリゾート(2024年2回目) / ...(記事連続表示)
PHPソースプログラム-アマゾンWebサービス(AWS/Amazon Web Service)ショップ名前: 小川 邦久 リンク: http://kunisan.jp/ 日付: 2008年1月30日 ![]() 先日公開したPHP4(XML関連の関数が使えない環境)で作ったショッピングサイト「KUNISAN.JPショップ http://kunisan.jp/shop/ 」ですが、とりあえずほぼ完成しました。ただ、試験的に作ったサイトで、あまりお客さんが来るとは思っていません。そこでサービス精神旺盛に、皆さんに PHPプログラムを公開してしまいます。
AWSAccessKeyIdのところにご自分のIDを入れれば、そのまま使えると思います。プログラムをそのままお使いいただいたり改造されることはかまいませんが、プログラムの著作権そのものは放棄しませんので、PHPソースの全体または一部について、ホームページや書籍等での再掲載や、二次的にダウンロードできるような形にはしないようにしてください。 ■■KUNISAN.JPショップ(PHP)■■ <html> <?php //タイトルの取得 $title = $_GET[TITLE]; //自動的に\が入ることがあるので、それを除去する処理 $title = stripcslashes($title); //検索ワードの取得 $word = $_GET[WORD]; //自動的に\が入ることがあるので、それを除去する処理 $word = stripcslashes($word); print '<head>'; if ($title != ""){ print '<title>'.$title.' / KUNISAN.JPショップ</title>'; } elseif ($word != "") { print '<title>検索結果 - '.$word.' / KUNISAN.JPショップ</title>'; } else { print '<title>KUNISAN.JPショップ</title>'; } print '</head>'; print '<meta name="description" content="">'; ?> <meta name="keywords" content=""> <meta http-equiv="Content-Type" content="text/html; charset=Shift-JIS"> <body> <?php //ページ番号の取得 $page = $_GET[PAGE]; if ($page == ""){ $page = 1; } //ノードIDの取得 $node = $_GET[NODE]; //サーチインデックスの取得 $search = $_GET[SEARCH]; if ($search == ""){ $search = 'Blended'; } $selected[$search] = 'selected'; //商品の説明を出すかの取得 $contents = $_GET[CONTENTS]; $checked[$contents] = 'checked'; ?> <table cellpadding="0" cellspacing="0" border="0"><tr><td width="728"> <h1> <a href="index.php" style="text-decoration:none"> <font color="888888">大きな画像と文字の<b>KUNISAN.JPショップ[β版]</b></font> </a> </h1> <form action="index.php" method="get" name="form1" target="_top"> <b>サーチ</b> <?php print '<select name="SEARCH">'; print '<option value="Books" '.$selected['Books'].'>和書</option>'; print '<option value="ForeignBooks" '.$selected['ForeignBooks'].'>洋書</option>'; print '<option value="Electronics" '.$selected['Electronics'].'>エレクトロニクス</option>'; print '<option value="Kitchen" '.$selected['Kitchen'].'>ホーム&キッチン</option>'; print '<option value="Music" '.$selected['Music'].'>音楽CD</option>'; print '<option value="Classical" '.$selected['Classical'].'>クラシックCD</option>'; print '<option value="DVD" '.$selected['DVD'].'>DVD</option>'; print '<option value="VHS" '.$selected['VHS'].'>VHSビデオ</option>'; print '<option value="Video" '.$selected['Video'].'>ビデオ</option>'; print '<option value="VideoGames" '.$selected['VideoGames'].'>ゲーム</option>'; print '<option value="Software" '.$selected['Software'].'>ソフトウェア</option>'; print '<option value="Toys" '.$selected['Toys'].'>おもちゃ</option>'; print '<option value="HealthPersonalCare" '.$selected['HealthPersonalCare'].'>ヘルス&ビューティ</option>'; print '<option value="SportingGoods" '.$selected['SportingGoods'].'>スポーツ&アウトドア</option>'; print '<option value="Watches" '.$selected['Watches'].'>時計&アクセサリー</option>'; print '<option value="Baby" '.$selected['Baby'].'>ベビー&マタニティ</option>'; print '<option value="Apparel" '.$selected['Apparel'].'>アパレル&シューズ</option>'; print '</select>'; print ' <input type="text" name="WORD" size="40" value="'.$word.'">'; print ' <input type="submit" value="検索"><br>'; ?> </form> </td></tr></table> </center> <center> <?php //検索ワードのエンコード変換 $word = mb_convert_encoding($word, "UTF-8","SJIS"); //And条件は" + "で記述すること //Or条件は" | "で記述すること $word = mb_eregi_replace(' ','+',$word); $word = mb_eregi_replace(' ','+',$word); //商品検索プログラムのアドレス指定(●●AWSAccessKeyIDにご自分のものをお入れください) $addr = 'http://webservices.amazon.co.jp/onca/xml?Service=AWSECommerceService& AWSAccessKeyId=XXXXXXXXXXXXXXXXXXXX&AssociateTag=kj036-22& Operation=ItemSearch&SearchIndex='.$search.'& ResponseGroup=Large&Sort=salesrank&Keywords='.$word.'&ItemPage='.$page.' &BrowseNode='.$node; //検索ワードのエンコード変換 $word = mb_convert_encoding($word,"SJIS","UTF-8"); //ホームページのHTML取得(1秒1回ルールがあるので、トップページではコールしないようにする) if (($word != "")&&($search != 'Blended')) { $xml = file_get_contents($addr); } //結果表示のUTF-8エンコードをSJISエンコードに変換する $xml = mb_convert_encoding($xml, "SJIS", "UTF-8"); //総ページ数の取得 $zd2 = spliti('<TotalPages>',$xml); $zd3 = spliti('</TotalPages>',$zd2[1]); $total_pages = $zd3[0]; //各情報の取得 $zd1 = spliti('<Item>',$xml); //HTML表示 if (($word != "")&&($search != 'Blended')) { if ($title != "") { print '<table width="728">'; print '<tr><td colspan="2" height="1" bgcolor="#cccccc"></td></tr>'; print '<tr><td colspan="2" height="4" bgcolor="#ffffff"></td></tr>'; print '<tr><td colspan="2"><b>'.$title.'</b></td></tr>'; print '<tr><td colspan="2" height="3" bgcolor="#ffffff"></td></tr>'; print '<tr><td colspan="2" height="1" bgcolor="#cccccc"></td></tr>'; print '<tr><td colspan="2" height="12" bgcolor="#ffffff"></td></tr>'; print '</table>'; } else { print '<table width="728">'; print '<tr><td colspan="2" height="1" bgcolor="#cccccc"></td></tr>'; print '<tr><td colspan="2" height="4" bgcolor="#ffffff"></td></tr>'; print '<tr><td colspan="2"><b>検索結果 - '.$word.'</b></td></tr>'; print '<tr><td colspan="2" height="3" bgcolor="#ffffff"></td></tr>'; print '<tr><td colspan="2" height="1" bgcolor="#cccccc"></td></tr>'; print '<tr><td colspan="2" height="12" bgcolor="#ffffff"></td></tr>'; print '</table>'; } //商品最大10件分表示のため、その分のループ for ($i = 1; $i <= 10; $i++) { //ASIN取得 $zd2 = spliti('<ASIN>',$zd1[$i]); $zd3 = spliti('</ASIN>',$zd2[1]); $zd_data[$i]["ASIN"] = $zd3[0]; //ページのタイトル取得 $zd2 = spliti('<Title>',$zd1[$i]); $zd3 = spliti('</Title>',$zd2[1]); $zd_data[$i]["Title"] = $zd3[0]; //ブランドの取得 $zd2 = spliti('<Brand>',$zd1[$i]); $zd3 = spliti('</Brand>',$zd2[1]); $zd_data[$i]["Brand"] = $zd3[0]; //著者の取得 $zd2 = spliti('<Author>',$zd1[$i]); $zd3 = spliti('</Author>',$zd2[1]); $zd_data[$i]["Author"] = $zd3[0]; //アーティスト名の取得 $zd2 = spliti('<Artist>',$zd1[$i]); $zd3 = spliti('</Artist>',$zd2[1]); $zd_data[$i]["Artist"] = $zd3[0]; //曲目の取得 for ($j = 1; $j <= 10; $j++) { $zd2 = spliti('<Disc Number="'.$j.'">',$zd1[$i]); $zd3 = spliti('</Disc>',$zd2[1]); if ($zd3[0] != "") { $zd_data[$i]["Music_Contents"] = $zd_data[$i]["Music_Contents"].'<b>ディスク'.$j.'</b><br>'; for ($k = 1; $k <= 32; $k++) { $zd4 = spliti('<Track Number="'.$k.'">',$zd3[0]); $zd5 = spliti('</Track>',$zd4[1]); if ($zd5[0] != "") { $zd_data[$i]["Music_Contents"] = $zd_data[$i]["Music_Contents"].$k.' '.$zd5[0].'<br>'; } } } } //詳細ページのURL取得 $zd2 = spliti('<DetailPageURL>',$zd1[$i]); $zd3 = spliti('</DetailPageURL>',$zd2[1]); $zd_data[$i]["DetailPageUrl"] = $zd3[0]; //大型画像のアドレス取得 $zd2 = spliti('<LargeImage><URL>',$zd1[$i]); $zd3 = spliti('</URL>',$zd2[1]); $zd_data[$i]["LargeImageUrl"] = $zd3[0]; //新品価格取得 $zd4 = spliti('<LowestNewPrice>',$zd1[$i]); $zd5 = spliti('</LowestNewPrice>',$zd4[1]); $zd2 = spliti('<FormattedPrice>',$zd5[0]); $zd3 = spliti('</FormattedPrice>',$zd2[1]); $zd_data[$i]["Price"] = $zd3[0]; //中古価格取得 $zd4 = spliti('<LowestUsedPrice>',$zd1[$i]); $zd5 = spliti('</LowestUsedPrice>',$zd4[1]); $zd2 = spliti('<FormattedPrice>',$zd5[0]); $zd3 = spliti('</FormattedPrice>',$zd2[1]); $zd_data[$i]["UsedPrice"] = $zd3[0]; //在庫状況 $zd2 = spliti('<Availability>',$zd1[$i]); $zd3 = spliti('</Availability>',$zd2[1]); $zd_data[$i]["Availability"] = $zd3[0]; //説明の取得 //(1つめ) $zd4 = spliti('<EditorialReview>',$zd1[$i]); $zd5 = spliti('</EditorialReview>',$zd4[1]); $zd2 = spliti('<Content>',$zd5[0]); $zd3 = spliti('</Content>',$zd2[1]); $zd3[0] = mb_eregi_replace('<','<',$zd3[0]); $zd3[0] = mb_eregi_replace('>','>',$zd3[0]); $zd_data[$i]["Content"] = $zd_data[$i]["Content"].$zd3[0]; $zd_data[$i]["Content"] = $zd3[0]; //(2つめ。主にAmazonの商品紹介) $zd5 = spliti('</EditorialReview>',$zd4[2]); $zd2 = spliti('<Source>',$zd5[0]); $zd3 = spliti('</Source>',$zd2[1]); if ($zd3[0] != "") { $zd_data[$i]["Content"] = $zd_data[$i]["Content"].' <b>'.$zd3[0].'</b>'; } $zd2 = spliti('<Content>',$zd5[0]); $zd3 = spliti('</Content>',$zd2[1]); $zd3[0] = mb_eregi_replace('<','<',$zd3[0]); $zd3[0] = mb_eregi_replace('>','>',$zd3[0]); if ($zd3[0] != "") { $zd_data[$i]["Content"] = $zd_data[$i]["Content"].'<br>'.$zd3[0]; } //発売日の取得 $zd2 = spliti('<ReleaseDate>',$zd1[$i]); $zd3 = spliti('</ReleaseDate>',$zd2[1]); $zd_data[$i]["ReleaseDate"] = $zd3[0]; if ($zd_data[$i]["Title"] != "") { print '<table width="728">'; print '<tr>'; print '<td valign="top">'; print '<a href="'.$zd_data[$i]["DetailPageUrl"].'" target="_blank">'; if ($zd_data[$i]["LargeImageUrl"] != "") { print '<img src="'.$zd_data[$i]["LargeImageUrl"].'" width="300" border="0">'; } else { print '<img src="no_image.gif" width="300" border="0">'; } print '</a>'; print '<br>'; print '<br>'; print '</td>'; print '<td valign="top">'; print '<big>'; print '<b>'; print '<a href="'.$zd_data[$i]["DetailPageUrl"].'" target="_blank">'; print $zd_data[$i]["Title"]; print '</a>'; print '</b>'; print '</big>'; print '<br>'; if ($zd_data[$i]["Brand"] != "") { print $zd_data[$i]["Brand"]; print '<br>'; } if ($zd_data[$i]["Author"] != "") { print $zd_data[$i]["Author"].' (著)'; print '<br>'; } if ($zd_data[$i]["Artist"] != "") { print $zd_data[$i]["Artist"]; print '<br>'; } if ($zd_data[$i]["ReleaseDate"] != "") { print '<b>発売日</b>: '.$zd_data[$i]["ReleaseDate"]; print '<br>'; } if ($zd_data[$i]["Music_Contents"] != "") { print $zd_data[$i]["Music_Contents"]; //print '<br>'; } if ($zd_data[$i]["Price"] != "") { print '<b>新品最安値</b>: '.$zd_data[$i]["Price"]; print '<br>'; } if ($zd_data[$i]["UsedPrice"] != "") { print '<b>中古品最安値</b>: '.$zd_data[$i]["UsedPrice"]; print '<br>'; } if ($zd_data[$i]["Availability"] != "") { print '<b>在庫状況</b>: '.$zd_data[$i]["Availability"]; print '<br>'; } if ($zd_data[$i]["Content"] != "") { print '<b>商品の説明</b>:<br>'; print $zd_data[$i]["Content"]; print '<br>'; } //print $zd_data[$i]["Contents"]; print '・ <a href="cart.php?ASIN='.$zd_data[$i]["ASIN"].'" target="amazon_cart">'; print 'この商品をAmazon.co.jpのカートに入れる'; print '</a>'; print '<br>'; print '・ <a href="'.$zd_data[$i]["DetailPageUrl"].'" target="_blank">'; print 'この商品の詳細をAmazon.co.jpでチェック'; print '</a>'; print '<br>'; print '</td>'; print '</tr>'; print '<tr><td colspan="2" height="12" bgcolor="#ffffff"></td></tr>'; print '<tr><td colspan="2" height="1" bgcolor="#cccccc"></td></tr>'; print '<tr><td colspan="2" height="12" bgcolor="#ffffff"></td></tr>'; print '</table>'; } } //ページ受け渡し処理 print '<center>'; print '<table><tr>'; print '<td>'; print 'トータル'.$total_pages.'ページ中の'.$page.'ページ目'; print '</td>'; print '<td width="32"></td>'; print '<td>'; if ($page > 1) { $prev_page = $page - 1; print '| <a href="?PAGE='.$prev_page.'&SEARCH='.$search.'&WORD='.$word.'& CONTENTS='.$contents.'&TITLE='.$title.'&NODE='.$node.'">'; print '前ページを見る'; print '</a> |'; } else { print '| <font color="#888888">'; print '前ページを見る'; print '</font> |'; } print '</td>'; print '<td>'; if ($page < $total_pages) { $next_page = $page + 1; print ' <a href="?PAGE='.$next_page.'&SEARCH='.$search.'&WORD='.$word.'& CONTENTS='.$contents.'&TITLE='.$title.'&NODE='.$node.'">'; print '次ページを見る'; print '</a> |'; } else { print ' <font color="#888888">'; print '次ページを見る'; print '</font> |'; } print '</td>'; print '</tr></table>'; print '<br>'; print '| <a href="index.php">トップページ</a> |'; print '</center>'; print '<br>'; } else { } ?> </center> <center>Copyright (C) 2008 <a href="http://kunisan.jp/" target="_blank">KUNISAN.JP</a>. All Rights Reserved.</center> </body> </html> ■■■■■■■■■■■■■■■ ※本プログラムの動作保障は致しかねます。また、プログラムについての質問等は受け付けていません。全て自己責任でお願いします。 PHP関連記事(リンク一覧): さくらレンタルサーバーのアクセス履歴をPHPで表示 / PHPで画像のアップロード(さくらレンタルサーバーのPHPでImageMagick) / PHP REVERSI(オセロもどき)の続き / PHP REVERSI(リバーシ) - オセロもどきゲームの公開 / PHP版-簡易アクセスブロック(IPアドレス、ホスト名、OS、ブラウザ名で制御) / ...(記事連続表示)
博多中州屋台「一竜」の豚骨ラーメン名前: 小川 邦久 リンク: http://kunisan.jp/ 日付: 2008年1月26日 ![]() 昨日、今日と社員旅行で福岡に行ってきました。福岡と言えば博多の屋台。以前からここでラーメンを食べたいと思っていました。目指すはバスガイドさん一押しの「一竜」。夕食にふぐ料理をたらふく食べた後、ラーメンで「仕上げ」の予定でした。しかし、8時頃に行ったら長い行列ができていて、すぐに入れそうな感じではありませんでした。 仕方がないので、しばらく歩いたところにある居酒屋で時間を過ごし、12時過ぎに改めて「一竜」に向かいました。運良く今度は2人しか並んでおらず、数分後に屋台の中に入ることができました。 注文したのはオーソドックスな豚骨ラーメン。普通盛りは700円で、「Wラーメン(2玉)」は800円ですが、ふぐ料理と居酒屋の脂っこい料理の後だったので、普通盛りにしておきました。 豚骨ラーメンというと、脂っこいギトギトとしたイメージがあったのですが、「一竜」のラーメンは、思いのほかさっぱりしていて食べやすかったです。東京の豚骨ラーメンは脂っこさが極端で、10代~20代の元気な頃はいいのですが、30代以降になると、かなり胃が持たれてしまいます。ところが「一竜」のラーメンは、ギトギトさが全くなく、細麺の食べやすさもあり、私はスープ全部を飲んで、めでたく完食してしまいました。 屋台の雰囲気も相まって、「一竜」のラーメンは非常にいい思い出となりました。 ラーメン関連記事(リンク一覧): 馬子禄牛肉面(神保町店)の蘭州牛肉面 / 石神井とらの特製つけ麺(石神井公園) / 麺屋 二二一(ふじい)の特製たまごかけ麺(神保町) / 一泊二日の出雲旅行 / 武蔵野アブラ学会の特濃生玉油そば / ...(記事連続表示)
Amazon Web Service (アマゾンウェブサービス)名前: 小川 邦久 リンク: http://kunisan.jp/ 日付: 2008年1月25日 ![]() Amazonの商品データベースに直接アクセスできるAmazon Web Serviceのアカウントを取得しました。
さっそくPHPでAmazonWebServiceを使ったページを作成してみました。 KUNISAN.JPショップ(β版) http://kunisan.jp/shop/ 検索結果がいきなり大きな画像で出てくるのが特徴です。あと、「商品の説明も併せて表示」にチェックを入れると、商品に関する詳しい説明が出てきます(ただ、ページ表示に10秒程度時間がかかります)。 まだ、Amazon Web Serviceをどのように使ったらいいかわかりきってないので、アイデア的にはまだ大したことないです。今後どのように展開するかは只今模索中です。 Web管理関連記事(リンク一覧): さくらのレンタルサーバ 新サーバーへの移行 / SPF、DKIM、DMARCの設定とネームサーバー(DNS)設定のトラブル / さくらレンタルサーバーのアクセス履歴をPHPで表示 / PHPで画像のアップロード(さくらレンタルサーバーのPHPでImageMagick) / KUNISAN.JPサイトのメンテナンス(2018) / ...(記事連続表示)
※該当の記事タイトル一覧はリンク一覧から参照できます。
■ ホームへ
|