相変わらずマッシュアップやってます〜
2008年02月01日00:16
当サイトでは完全にお馴染みになりすぎて、少し怖いくらいの感じも漂いだしたZAPA先生のマッシュアップ講座
みなさまもいい感じに馴染んで頂けてますか?

ついに第3回に突入!
URLでリクエストを出して、XML形式で情報を受け取り、それを利用するという、いよいよマッシュアップっぽくなってきましたよ〜。

これが出来れば、私も立派なマッシュアッパーでしょうか。
よーし、それでは今日もレッツゴー!

ところで、これまでのZAPA先生のマッシュアップ講座を拝見して書いた、当サイトのエントリを確認しておきましょう。


次回予告。ZAPA先生に弟子入り。
マッシュアップって何?APIって何?
PEARが難しすぎるので、教えて偉い人!『解決済み』
ZAPA先生、ようやく第1回が終わりました・・・
ZAPA先生のマッシュアップ講座第2回受講



そういうわけで、今回は第3回なのですが、この第3回を読んでいて、いきなり大問題にぶつかってしまいました。

実は、今PHPを学ぶのは、すんごく時期が悪いわけなんですよ。
数子ちゃん的に言えば、スーパー大殺界オブジイヤーでしょうか。
とにかく、PHP4からPHP5に移行しちゃいそうでしちゃってない、乙女の揺れるハートのような時期なのです。

私が使っているチカッパ!レンタルサーバーは、PHP4.4.x。

さくらインターネットは、PHP4とPHP5が選択できるようになっています。
ついこの前、PHP5に変更してみました。
(参考:さくらインターネットがPHP5に移行する件

そういうわけで、PHPを本格的に学びたい方は、もう少し待ってPHP4が完全にPHP5に移行してしまってから、ほとぼりが冷めた頃にPHPに参入されるのがいいのかもしれません。


私は性格的にやり始めたら止まらないので、PHP4とPHP5の違いにビクビクしながら、学習を進めたいと思います。



さて、前置きが長くなりましたが、早速第3回の内容を見てみましょう。

最初にいきなりわかりづらかったのは、「 .= 」(ドットイコール?)というものです。

例えば、$a という変数があるとすると、
$a = 10;
この式は変数aに10を代入しなさい、というような意味です。


これが、ドットイコール(?)の場合、
$a .= 10;
付け足して代入しなさい」みたいな意味になっているようです。


そういうわけで、サンプルコード「haipai.php」を書いてみました。

<「haipai.php」サンプルコード>
<?php
$haipai = "発発発中";
echo "$haipai<br />";
$haipai .= "中中白白";
echo "$haipai<br />";
$haipai .= "白東東東";
echo "$haipai<br />";
$haipai .= "南";
echo "$haipai<br />";
$haipai .= "南&nbsp;天和です";
echo "$haipai<br />";
echo "大三元"."字一色"."四暗刻"."もつけていいですか?";
?>


<実行結果>
発発発中
発発発中中中白白
発発発中中中白白白東東東
発発発中中中白白白東東東南
発発発中中中白白白東東東南南 天和です
大三元字一色四暗刻もつけていいですか?


こんな配牌が来たら、いろんな意味で怖いですね。
それはさておき、少しずつ配牌が付け足されて、変数haipaiに代入されていくのが、ご理解頂けるのではないかと思います。

なんかPHPでは、.(ドットというかピリオドというか)は「連結演算子」とか言って文字列を連結するのに使うらしいです。
「haipai.php」サンプルコードの「大三元」、「字一色」、「四暗刻」のところで、使ってみました。

そう言えば、第1回、第2回でも、さくさく出てきてましたね。
言われてみると納得です。



これらを踏まえて、simplexml_load_file関数を使ったPHP5バージョンで、まずはlivedoorのお天気WebサービスAPIを使ってみます。

simplexml_load_file関数で取り出した文字列を加工したものを$retという配列にするという関数にしてみました。

あとは配列の内容を表示してるだけです。


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>東京のお天気</title>
<style type="text/css">
<!--
body {
font-size: 14px;
}
.content {
width:300px;
}
-->
</style>
</head>
<body>
<div class="content">
<?php
function lwws($city,$day){
$req = "http://weather.livedoor.com/forecast/webservice/rest/v1";
$req .= "?city=".$city."&day=".$day;
$xml = simplexml_load_file($req)
or die("XMLパースエラー");

$xmltitle = $xml->title;
$xmlurl = $xml->image->url;
$xmldescription = $xml->description;
$max = $xml->temperature->max->celsius;
$min = $xml->temperature->min->celsius;

$xmlimgurl = "<img src=¥"".$xmlurl."¥" alt=¥"".$xmltitle."¥">";
$xmlmax = "最高気温".$max."度";
$xmlmin = "最低気温".$min."度";

$ret = array($xmltitle,$xmlimgurl,$xmldescription,$xmlmax,$xmlmin);

return $ret;
}
$city = "63";
$day = "tomorrow";

$res = lwws($city,$day);

foreach($res as $a){
echo "$a<br />¥n";
}

?>
</div>
</body>
</html>


なんとなく、出来ました。

http://syoboi.com/test/lwws1/


次回は正規表現は難しそうなので、別の方法でお天気WebサービスAPIをもう少しいじってみたいと思います。



<閑話休題>

ところで、私は何でへたくそでド初心者なのに、PHPをやっているかと言いますと、私より後にPHPを学びたいという人が出てきた時に、教えてあげたいからです。

どこが危ないのか、どういうことをしちゃうと脆弱なWebアプリになりやすいのか、できたらこういうところは手を出さないほうがいいよとか、それを理解して伝えたいと思っています。

当面、データベースやCookieまで使おうなどと、大胆な事は考えておりません。


ローカルで1年ほどやっておけというご意見もご尤もですが、マッシュアップサイトなどの学習をやってみようとすると、素人にはローカルではかえって難しかったりいたします。


余力があれば、PerlやRubyも学んでみたいと思いますが、まずは片足突っ込んじゃったので、PHPをやれるところまで学んでみたいと思います。

御覧の通りのへっぽこですので、何か危ない事をしでかしそうな時には優しく教えて頂けると助かります。

m(_ _)m



clip!PHP 

この記事へのコメント
赤いpost
解説ありがとうございます。
勉強になります。

先日お聞きしたMODx 。 
とりあえずはレイアウトができるようにと考えてますが、
PHP、データベースを使用するようですので興味深い
内容です。

しかし、関数とか変数って漢字を見ただけでパニクってる
脳ですので理解するにはだいぶ先のことでしょう。(笑

afiliate
どおも〜赤いpostさま。
いえいえ、勉強になるとかとんでもないです〜。これからも精進いたしたいと思っております。

MODx、内容は知らないのですが、WordPressに近いのかな。WordPressはPHP+MySQLですよ。CSSを使ってあるので、なんとかカスタマイズできましたが、まだまだ思い通りには程遠いですね。
ご存知かもしれませんが、
WordPress学習中(http://xn--fiq253ahp2a.jp/wordpress/)でやってました。

私もパニクってますよwww。さらに正規表現あたりが厳しい。あせらず、ぼちぼちがんばっていきましょう〜。

ヒカル
ヒカル
2008年02月01日 02:55
スーパー大殺界オブジイヤー。ツボりました(笑)
でも、スーパー大殺界オブザいやぁ〜ん♪(はぁと)、
だったら、もっとツボったかもしれません(笑)
マッシュアップ講座、すごい良いですよね☆ 次の講座、楽しみにしています!
ちなみに、私なら、大三元字一色四暗刻に、
さらに、お新香と閉めの小うどんをつけます(笑)

afiliate
どおも〜ヒカルさま。
さすがですね。そこでツボられるとは。その部分がこの記事で最も推敲を重ねたところです(笑)。

マッシュアップ、だんだん楽しくなってきました。どういうマッシュアップサイトを作るかの構想も固まりつつあります。とりあえず、ZAPA先生の講座をどんどん読み進めて行きたいと思っています。

渋い締めですね〜。私は鍋と雑炊あたりで締めかと思いました。

アンコウだけにね(ここ、笑うところですよ!)。