マグニチュードによる地震比較を作りました
地震の被害ものすごいですね。
気象庁が東北地方太平洋沖地震のマグニチュード8,8から9,0に変更ということです
マグニチュードというものが良くわからなかったので、マグニチュードによる地震比較を作ってみました。
9.0と8.8で入力すると
マグニチュード9,0はマグニチュード8.8の約1.99526倍の地震です
ということで約2倍の大きさの地震ということで変更されたことがわかります。
阪神・淡路大震災はマグニチュード7,3なので9,0と比較すると
東北地方太平洋沖地震(9.0)は阪神・淡路大震災(7.3)の約354.81339の地震です
ということで300倍以上の地震です。
まだ作りかけですが公開します。
こういう時に個人の力というものはあまりに無力ということを実感させられます。
でも、がんがれ日本!!!などを読んで、日本という国はすごい国だと改めて感じました。
参考
マグニチュード:wikipedia
楽天商品検索APIが面白いです。このような楽天の検索窓が簡単にできるので、このようにHP内に設置したりすることができます。今回はとりあえず使ってみるということで以下の1から5の手順で自分のHPに設置する手順を紹介します。
1、レンタルサーバーの申し込み
2、楽天アフィリエイトIDの取得、
3、デベロッパーIDの取得
4、ファイルに楽天アフィリエイトIDとデベロッパーIDを挿入
5、サーバーにファイルをアップロード
レンタルサーバーと楽天IDを持っている人は3からですむので30分もかからず15分くらいでできると思います。
1、レンタルサーバーの申し込み
レンタルサーバーを申し込みます。
初心者におすすめのレンタルサーバーを三つなどを見てPHPを使えるサーバーを使えるようにしてください。
2、楽天アフィリエイトIDの取得
楽天市場の会員で無い方は楽天市場の右側にある「初めてご利用される方」から会員になります。
会員になれば楽天アフィリエイトIDを取得できたことになります。
3、デベロッパーIDの取得
楽天商品検索APIを取得するためにデベロッパーIDを取得します。
楽天ウェブサービスの左側にあるデベロッパーIDの確認からデベロッパーIDを取得します。楽天に登録しているメールアドレスにデベロッパーIDが送信されてきます。このデベロッパーIDは後でつかいます。
ちなみにデベロッパーIDの確認の下にあるアフィリエイトIDの確認からアフィリエイトIDを確認することができます。
4、ファイルに楽天アフィリエイトIDとデベロッパーIDを挿入
楽天商品検索APIのサンプルコードのサンプルコードをコピーしてエディタに貼り付けてください。自分のディベロッパーIDと自分のアフィリエイトIDの部分に2と3で取得したものを入力します。例えば自分のデベロッパーIDがhogehogeだとしたら
$DEVELOPER_ID = “hogehoge”;
とします。ダブルクオォート(”)を消してはいけません。文字コードはUTF-8で保存してください。
適当なエディタが無い人はTeraPadかNotePad++あたりをダウンロードすると良いでしょう。
5、サーバーにファイルをアップロード
4、で作ったファイルを拡張子.phpでレンタルサーバーにアップロードしてください。無事に表示できたら完了です。
アップロードするFTPソフトが無い方は窓の杜 – FTPクライアントから選んでください。一番メジャーなFFFTPが良いでしょう。
まとめ
楽天商品検索APIを使って簡単に検索窓を設置することができました。これを応用すれば楽天の商品情報を取得して色々なWebサービスをつくることができます。ホームページでものを紹介するときもこれを使えばリンク切れの心配が無いというだけでも大きな意味があるのではないでしょうか
次回のエントリではこのAPIをカスタマイズして、使う方法を紹介したいと思います。
楽天商品検索を使い倒したらAmazonウェブサービスやYahoo!オークションWeb APIも使ってみたいと思います。その時はこのブログで解説しますのでご期待ください。
このエントリは商品検索API サンプルソース (PHP)及び楽天商品検索API (version:2010-09-15)を参考にして書きました
wordpressの投稿部分ではデフォルトではPHPを使えないのでこの方法は使えませんが、Exec-PHPなどのプラグインを使えばPHPを使えるようしてあげると、使えるようになります。
<?php
// ---------------------------------------------------------------
// 楽天商品検索API の利用サンプルコード (PHP)
// ---------------------------------------------------------------
/* ---------------- 以下、変更部分 ------------------------------ */
// 自分のディベロッパーID
$DEVELOPER_ID = "";
//自分のアフィリエイトID
$AFFILIATE_ID = "";
/* ---------------- 以上、変更部分 ------------------------------ */
//--------- API毎の固定値
// API名
$API_NAME = "楽天商品検索API";
// APIのURL
$API_BASE_URL = "http://api.rakuten.co.jp/rws/3.0/rest";
//オペレーション名
$OPERATION = "ItemSearch";
//バージョン
$API_VERSION = "2010-09-15";
//--------- リクエストパラメタの取得とAPIへのリクエストURL生成
// リクエストURL生成
$api_url = sprintf("%s?developerId=%s&affiliateId=%s&operation=%s",$API_BASE_URL,$DEVELOPER_ID,$AFFILIATE_ID,$OPERATION);
//APIへのパラメタの連想配列
$api_params = array(
"keyword" => "",
"version" => $API_VERSION,
"shopCode" => "",
"genreId" => "",
"catalogCode" => "",
"hits" => "",
"page" => "",
"sort" => "",
"minPrice" => "",
"maxPrice" => "",
"availability" => "",
"field" => "",
"carrier" => "",
"imageFlag" => ""
);
// リクエストパラメタ取得
reset($api_params);
while(list ($key, $val) = each($api_params) ){
if(isset($_REQUEST[$key]) && $_REQUEST[$key] != ""){
// リクエストパラメタにあれば、APIへのURLに追加
$api_url = sprintf("%s&%s=%s",$api_url, $key, urlencode($_REQUEST[$key]));
$api_params[$key] = $_REQUEST[$key];
}else if(isset($api_params[$key]) && $api_params[$key] != ""){
// パラメタにあれば、APIへのURLに追加
$api_url = sprintf("%s&%s=%s",$api_url, $key, urlencode($api_params[$key]));
}
}
// --------- API取得処理
// API結果ステータス
$status = null;
// API結果メッセージ
$statusmsg = null;
// 商品情報の配列
$item_array = array();
// 結果件数
$count = 0;
// 商品検索ボタンを押された時、APIにリクエストを投げる
if( isset($_REQUEST['submit']) && $_REQUEST['submit'] == "商品検索" ){
$contents = file_get_contents($api_url);
// XMLをパースして構造体(values)に入れる
$parser = xml_parser_create('UTF-8');
xml_parse_into_struct($parser,$contents,$values);
xml_parser_free($parser);
// 連想配列から値を取得
if($values){
$item_temp = null;
foreach ($values as $data) {
if(isset($data['tag'])){
// タグ名のよって分岐
switch ($data['tag']) {
case 'STATUS': //共通パラメータ:Status
if(isset($data['value'])){
$status = $data['value'];
}
break;
case 'STATUSMSG': //共通パラメータ:Statusに特化したメッセージ
if(isset($data['value'])){
$statusmsg = $data['value'];
}
break;
case 'COUNT': //全体情報:検索数
if(isset($data['value'])){
$count = $data['value'];
}
break;
case 'ITEM': //商品情報:ITEMタグ開始
if($data['type'] == 'open'){
$item_temp = array();
}else if($data['type'] == 'close'){ //商品情報:ITEMタグ終了
array_push($item_array,$item_temp);
$item_temp = null;
}
break;
default:
if(is_array($item_temp)){ //商品情報:ITEMタグ終了
if(isset($data['value'])){
$item_temp[$data['tag']] = $data['value'];
}
}
break;
}
}
}
}
// 以下からHTML表示部分
}
header("Content-type:text/html;charset=UTF-8");
?>
<html lang="ja">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title><?=$API_NAME?>/楽天ウェブサービス</title>
</head>
<body bgcolor="#ffffff" TEXT="#333333" LINK="#3333cc">
<!-- タイトル -->
<h1 style="font-size:16px;font-weight:bold;">楽天ウェブサービス</h1><hr size="1" noshade><?=$API_NAME?><hr size="1" noshade>
<!--/タイトル -->
<!-- HTMLフォーム表示 -->
<form action="item_search.php" method="post">
<table width="60%" border="0" cellspacing="0" cellpadding="0" style="margin: 5px 0pt 0pt 0px;">
<tr><td bgcolor="#afafaf">
<table width="100%" border=0 cellspacing=1 cellpadding=5 style="font-size:12px;">
<tr><td style="background-color: #eeeeee;">検索キーワード</td><td style="background-color: #ffffff;">
<!-- キーワード入力テキストボックス --><input type="text" name="keyword" value="<?=htmlspecialchars($api_params['keyword'])?>" size="30">
</td></tr>
<tr><td style="background-color: #eeeeee;">価格</td><td style="background-color: #ffffff;">
<!-- 最小価格入力テキストボックス -->
<input type="text" name="minPrice" value="<?=htmlspecialchars($api_params['minPrice'])?>" size="15"> 円
~
<!-- 最上価格入力テキストボックス -->
<input type="text" name="maxPrice" value="<?=htmlspecialchars($api_params['maxPrice'])?>" size="15"> 円
</td></tr>
</table>
</td></tr></table><br>
<input type="submit" name="submit" value="商品検索">
</form>
<!-- HTMLフォーム表示 -->
<!-- API検索結果表示 -->
<font style="font-size:14px;">
<?php if($status != ""){ ?>取得結果: <?=$status?><br><? } ?>
<?php if($statusmsg != ""){ ?>取得内容: <?=$statusmsg?><br><? } ?>
<?php if($count > 0){ ?>取得件数: <?=$count?><br>
<table width="60%" border="0" cellspacing="0" cellpadding="0" style="margin: 5px 0pt 0pt 0px;">
<tr><td bgcolor="#afafaf">
<table width="100%" border=0 cellspacing=1 cellpadding=5 style="font-size:12px;">
<tr align="center" style="background-color: #eeeeee;">
<td width="8%" >写真</td>
<td width="47%">商品名</td>
<td width="15%">価格</td>
<td width="30%">ショップ名</td>
</tr>
<?php foreach ($item_array as $item){ ?>
<tr style="background-color: #ffffff;">
<td width="8%" align="center"><a href="<?=$item['ITEMURL']?>" target="_top"><img src="<?=$item['SMALLIMAGEURL']?>" border=0></a></td>
<td width="47%" align="left"><a href="<?=$item['AFFILIATEURL']?>" target="_top"><font size="-1"><?=$item['ITEMNAME']?></a></td>
<td width="15%" align="right" nowrap> <?=$item['ITEMPRICE']?> 円</td>
<td width="47%" align="left"><a href="<?=$item['SHOPURL']?>" target="_top"><font size="-1"><?=$item['SHOPNAME']?></a></td>
</tr>
<?php } ?>
</table>
</td></tr></table>
<?php } ?>
</font>
<!-- /API検索結果表示 -->
</body>
</html>
これからホームページやブログを独自ドメインで運営する人が増えると思います。ブログやtwitterやfacebookを連携させることがセルフブランディングという意味ですごい力をもつという情報が増えているので。今までに色々なレンタルサーバーを渡り歩いてきたので、個人的に評価の高い初心者におすすめのレンタルサーバー第一位から第三位までを紹介してみます。
第1位 サクラのレンタルサーバ
さくらインターネット伝説というネタができるくらい安定している会社。
このブログもサクラインターネットのスタンダードプランで運営していますが、月500円でとても快適。
ワードプレスの設置もさくらインターネットでWordPressを設置するで書いたとおりクリックしていくだけでできますし、スタンダードプランはデータベースがひとつしか無いですが、ワードプレスを複数設置することもできます。容量が少なくても良いなら年間1,500円のライトプランという選択肢もあります。(PHPは初期状態では使えませんがインストールすることが可能。MySQLは使えません。)
上位のプランや仮想専用サーバも充実しているのでアクセスが多くなっても、ここだけでずっとやっていけると思うほど良い会社。
さくらのレンタルサーバ
第2位 XREAとCORESERVER
XREAは月200円と安いのが魅力的。また広告入りでもよければ無料でPHPやMySQLが動く鯖を使うことをできるのも魅力的。
CORESERVER.JP(コアサーバー)は、PHP+MySQLの快適性を重視した大容量の次世代レンタルサーバーサービスです。
というCORESERVERはXREAよりも少しだけ快適でCORE-Aプラン以上であればマルチドメイン、サブドメインが無制限という、サイトを量産するにはうってつけのサーバーです。ここで色んなサイトをつくってみて大当たりしたものがあればおっ引越しという使い方でもよいかもしれません。
わたしもCORESERVERを使ってWebサービスを作っています。問題なく使えていますよ。
xrea
CORESERVER
第3位 ロリポップ
第3位は迷いましたが、安いけれども色々できるということでロリポップ。あたりが悪く遅いサーバーを引いてしまうと絶対引越ししたくなるので、無料期間で試してみるのがおすすめ。コストパフォーマンスではxreaの月額200円のプランの方が上かなと思います。ただxreaはロリポップやさくらみたいに自動でワードプレスをインストールしてくれたりはしません。
ロリポップ
まとめ
充分なお金を出せば安定したサーバーが手に入るの当たり前。でも初心者でコストパフォーマンス重視ならさくらかxreaに落ち着くとおもいます。
このブログはさくらインターネットのレンタルサーバー、スタンダードプランで運営しています。さくらインターネットではWorePressのインストールがボタンひとつでできて説明もいらないくらいですが、いちおうわかりやすいように設置の仕方をかいてみます
- サーバーコントロールパネルにログイン後、左側の運用に便利なツールのクイックインストールからブログ、WordPressを選択。
- ライセンス、インストール規約、注意事項の内容に同意するをチェックし、インストール先とデータベースパスワードを入力、テーブルの接頭語を入力してインストールのボタンをクリック。
- 「5分でできる WordPress の有名なインストールプロセスへようこそ」と表示されるのでサイトの名前などを入力
これでインストールが完了するので実に簡単ですばらしいです。
さくらインターネットのスタンダードプランはデータベースが一つしかなくて、WordPressの複数設置は設定ファイルをいじらないとだめなのかなと思ったけど、いじらなくても勝手にやってくれる仕様になっているようで簡単でした。
ここはウエブサービス開発の試行錯誤を書くブログということにしているので、日記を書くブログとしてヒデの日記を作りました。よろしくお願いします。

I Love WordPress / cinefilo
WordPressを設置したときにやったことのまとめ。今後に設置するときのために。
を参考にしてしました。
WordPressを設置する
WordPressのインストールなどをみてワードプレスをインストールする。
WordPressの設定
1、パーマリンクの設定
URL(パーマリンク)設定を『/%category%/%postname%/』とかに設定する。投稿のとき考えるのがめんどくさいようであれば『/%category%/%post_id%/』とかでも良いと思う。
パーマリンクの使い方を参考に。
設定のパーマリンクの設定からカスタム構造をチェックして上の『』内を入力すればOK
2、pingの送信
更新通知サービス
MTでping送信可能。ping送信先一覧
などを参考に更新通知したいものを選ぶ、最低限必要なとこに送っとけば良いと思う。
設定は設定の投稿設定の下のほうにある更新情報サービスから
3、サイト名とサイト概要を設定
設定の一般タブから
4、テーマを選ぶ
いろいろとテーマを検索してみたけど、まだデフォルトのテーマ。記事が多くなってから選んだほうがイメージがわくと思う。
必要なCSSの編集。今回はpreタグを編集したのとh4タグをいじって見出し用にした。
スタイルの編集で『変更を保存するには事前にこのファイルを書き込み可能にする必要があります。詳しい情報は Codex を参照してください。』と出た場合には属性を変更する。詳しくはパーミッション(属性)の変更方法
5、more-link の #more-xxxx を削除する
more-link の #more-xxxx を削除するがわかりやすかった。
テーマにもよるのでテーマのfunctions.phpの該当箇所を編集する。
プラグインの設定
1、コメントスパム対策、マルチバイト文字に対するバグ修正
AkismetとWP Multibyte Patchを有効にする。
2、SEO対策
HeadSpace2をインストール。Googleanalyticsの設定などをする。
Googleanalyticsの設定の仕方はアカウントIDの欄にAnalyticsの”UA-*****-*”の部分を入力する
プラグインをインストールできない場合はWordPress インストールメモを参考に。xreaの場合は’/virtual/アカウント名/public_html’をつけてフォルダの位置を指定する。
3、関連記事表示
YARPPをインストール
インストールの仕方はwordpress関連記事プラグイン「Yet Another Related Posts Plugin(YARPP)を参考にする。
テンプレートをテーマのフォルダにコピーしないと使えないので少しとまどった。
4、ブックマークボタンなどを設置
sexybookmarkとFacebookのいいね!ボタンを設置した。
いいね!ボタン設置した記事はこちら
zenbackが便利だから普通のブログならこれをつけるだけで良さそうzenbackではてブ、twitter、facebookに対応できるのと、はてブとtwitterをコメントみたいに表示することができる。
5、携帯電話からのアクセスに対応
KtaiStyleをインストール
6、サイトマップ生成
Google XML Sitemapsをインストール。
サイトマップ生成は色々なプラグインがあってどれが良いかわからなかった。今後よさそうなのがあれば乗り換える。
どうするか検討中なもの
どうしたら良いかわからなかったり、効果があるか自分のなかでよくわからないもの。
1、あわせて読みたいの設置
あわせて読みたいはもうすこしちゃんとしたブログになったら設置しようと思った。
2、URLの正規化
同じ記事が個別記事とカテゴリと月別アーカイブとかで表示されて、検索エンジンがこまるのでURLを正規化したほうが良いらしい。効果がよくわからないのでしなかった。
最近xreaのコアサーバーのCORE-Aの契約をしました。MySQLのデータベース数も無制限でサブドメインも無制限に設定できるので最初の練習用サイトを量産するには最適だと思います。
値段も年間契約で5000円なのでこの内容なら安いんじゃないかなと。
データベースの設定をする際に、phpMyAdminへの入室方法がわかりづらかったので以下覚え書き。
PhpMyadminへのログインの前に以下のような画面がでてくる時があるのでこの時は、管理画面のPhpMyadminへのリンクの下のほうに書いてあるユーザー名とログ閲覧画面の認証パスワードとして表示されているものを入力。

すると以下のようなphpMyAdminへのログイン画面になります。そこでデータベース名(ユーザー名)とデータベースを作る際に設定したパスワードを入力します。するとログインできます。

ちょっとここら辺はxreaの書き方が悪いと思う。
ぐぐってもpublic_html/log/phpmyadmin/config.inc.phpの該当箇所を変更するって情報が多かったし。
最近のFacebookの流行は最初の頃のTwitterを思い出します。もしかしたら日本でも流行だすのでしょうか。Facebookやってみたいけど実名ということに少し抵抗があって、昔ニックネームで作ったアカウントを放置しています。
その流行にあやかろうとこのブログにFacebookのlikeボタンを設置してみました。
設置の仕方はプラグインからFace Book Like Buttonを検索してインストールするだけで自動的にFacebookのlikeボタンが設置されます。
日本語のいいねボタンを設置したいところではありましたが、良いプラグインがなかったので自分がFacebookを実名ではじめたときにでも設置しようかなと。
【追記】
Likeではなく日本語のいいね !ボタンが設置されてました。Face Book Like Buttonのプラグインはインストールも簡単だし良いと思います。
6月までに家にある本250冊をスキャンしたいということで、今年のはじめに一週間に10冊づつスキャンするという計画を建てました。今日はその一回目の日、全部でどれくらい時間がかかるのか計測してみました。
以下の本10冊をスキャンしたのですが、かかった時間が全部で2時間50分。
内訳としては本をカッターで切ったり、裁断機で裁断したりで33分。
scansnapを使ってスキャンするので2時間17分でした。
慣れればもう少し時間が短縮されると思うけど、改めて時間をきっちり計測してスキャンをしてみたことで、スキャンするにはかなりの時間がかかることがわかりました。とりあえず一週間に3時間をスキャンする時間にとろうと思います。
理想としてはウェブ時代の情報整理術にあるようなアーカイブ化、なんとか今年の6月までに・・・。
一冊100円でサービスしてくれるbookscanのようなサービスがあるようだけど、慣れても同じくくらい時間がかかるようなら時間効率を考えると絶対に利用したほうが得ですね。今日は10冊で約3時間かかったわけですが、bookscanを利用したら1000円+送料で済むというわけで、仮に1時間でscanできたとしてもbookscanの利用を検討する感じです。しかしbookscanはどうやって作業を効率化してるんだろ?採算がとれるのか非常に疑問です。
しばらく自分でスキャンしてみようとおもっているので、慣れてきたらまた時間を計測してブログを書きます。
evernoteと連携できるメモ帳はたくさんありますが、自分の使い方にあったメモ帳が欲しいと感じていました。そこで自分が欲しい昨日を持ったオンラインメモ帳を作る事に。自分が欲しかったのは以下のような機能です。
- パソコンからも携帯からもアクセスできる。
- メモの後にメモをした時間を表示する。
- 一日文のメモをまとめてevernoteとgmailに送る事ができる。
- デザインがシンプルである。
ということで以下のようなPHPのコードを書いてオンラインメモ帳が出来上がりました。
<html>
<body>
<div class=memoblock>
<form method="post" action="memo.php">
メモを入力<input type ="text" name="memo" size =100><br />
<input type="submit" VALUE="メッセージ送信">
<input type="hidden" name="h" VALUE="ins">
</form>
<form method="post" action="memo.php">
<input type="submit" VALUE="更新">
<input type="hidden" name="h" VALUE="des">
</form>
</div>
<?php
$h_d=$_POST["h"];
$mydb="";//データベース名を入力
$mydbuser="";//データベースのユーザー名を入力
$mydbpass="";//データベースのパスワードを入力
$s=mysql_connect($mydb,$mydbuser,$mydbpass) or die("失敗しました");
mysql_query("SET NAMES utf8",$s); //クエリの文字コードを設定
mysql_select_db("");//データベース名を入力
switch($h_d){
case ins:
$a1_d=$_POST["memo"];
$sal = mysql_real_escape_string($a1_d);
mysql_query("INSERT INTO my_table SET me='$a1_d'");
break;
}
$de=$_POST["de"];
switch($de){
case delete:
$del =$_POST["h"];
$sal = "DELETE FROM my_table";
$sal = mysql_real_escape_string($sal);
mysql_query("$sal");
break;
}
$ma=$_POST["ma"];
switch($ma){
case mail:
$sql = "SELECT * FROM my_table ORDER BY id";
$sql = mysql_real_escape_string($sql);
$re=mysql_query($sql);
while($kekka=mysql_fetch_array($re)){
$kansei = "$kansei" . "$kekka[1]" . " ";
$kansei = "$kansei" . "$kekka[2]";
$kansei = "$kansei" . "\n";
}
mb_language("japanese");
mb_internal_encoding("UTF8");
$to ="";//送りたいメールアドレスを指定。複数ある場合は,で区切る
$subject = "";//件名を入力
$from = "";//ヘッダを入力
$success = mb_send_mail($to, $subject, $kansei, $from);
if ($success){
print("送信成功しました");
}
else{
print("送信失敗しました");
}
}
$i=1;
$sql = "SELECT * FROM my_table ORDER BY id";
$sql = mysql_real_escape_string($sql);
$re=mysql_query($sql);
while($kekka=mysql_fetch_array($re)){
print "<div class='memoblock'><div class='memo'>";
print $i;
$i = $i+1;
print ".";
print $kekka[1];
print "</div><div class='time'>";
print $kekka[2];
print "</div></div>";
}
mysql_close($s);
?>
<div class="memoblock">
<form method="post" action="memo.php">
<input type="submit" VALUE="削除する">
<input type="hidden" name="de" VALUE="delete">
</form>
</div>
<div class="memoblock">
<form method="post" action="memo.php">
<input type="submit" value="メールする">
<input type="hidden" name="ma" value="mail">
</div>
</body>
</html>
ちょっとしたメモなどは、パソコンからでも携帯からでもこれにメモをして、cronで一日に一度自動的にメール送信、全て削除という使い方をしています。
初めてPHPで書いたプログラム文なので、上級者の方から見たらここはもっと簡潔にかけるとか、このように改良したほうが便利ではというのがあると思います。アドバイスいただければと思います。
カテゴリー: php日記
|
タグ: evernote, php
|