ギークなお姉さんは好きですか

恋焦がれる理想の男性・ギークに近づくため、プログラミングがわかるお姉さんを目指すブログ

7日目 ヘッダ情報が見たい!知りたい!晒したい!

日記

「エントリ書くからねえぇぇー!!」

そう叫んで別れた駅の改札口。
今日は先週行けなかったあきやん宅へけんすうと一緒にパジャマでおジャマ!
や、けんすうはちゃんとした格好してたけど、紅はマジでパジャマだった。
正直、暮らす気満々だった。
ごめんなさい。
けんすうと2人で 「あの部屋ぜんぜん住めるよなー!」 って盛り上がってた。
なんのつもりだ。


あきやんが夕食にシチューを作って待っていてくれたよ!
カレーっぽく見えるけどシチューなの。
曰くカボチャが溶けたらすぃ。
あきやんだからってカレーと判断するのは早計だ。
失敬だ。
下は写メ撮影に必死こくべにぢょ。
(撮影:けんすう) 

   
   


紅が昼間ブクマしたのを知ってて作ってくれた・・・( ;Д;)ウッウッ...
アルファギークはサーバだけじゃなく、女の子にも優しい。
「つーか、私たち繋がりすぎなんじゃね。」は確かにあるある。
みんなと繋がったまま街中歩くなんて、頭がフットーしそうだよっっっ!!!って感じ><
確かに頭は沸いている。悪い意味で。
前回、あきやんと飲んだとき 「切込隊長も言ってたけどさぁー。」 と↑のエントリの話をした。
若い男女が酒を飲みながらする話ではない。[だがそれがいい]
僕らはいつも以心伝心!二人の距離つなぐツイッター!! ってオレンジレンジも言ってたし♪
Web2.0の中・・・すごくあったかいナリ・・・ネト充バンザイ\(^o^)/





ヘッダ情報を晒しage隊!

先週は風邪でヘタれてて全然勉強できなかった(つд・)
通説によると紅は風邪を引かない体質のはずなんだけど。
きっとギークになったせいだと思う。まいったねこりゃ><

とゆことで、平日にやるはずだったヘッダ情報について。
これはわりとスムーズに理解できた。
スムーズすぎてあきやんがちょっぴり淋しそうだった。以後気をつけない。



ヘッダ情報を取得しよう

はてブを禁止する方法のときにちょっと触れたけど、
サーバとブラウザは普段、いろいろな情報をやり取りしてる。
参考:べ、べつにブクマ禁止したいわけじゃないんだからっ!

サーバとやり取りする情報というとPOSTやGETを思い出すけど、
ヘッダ情報がその2つと違うのは、不可視であるという点。
事実、ネット充の紅が「ヘッダ情報ってなに?」って感じるということは、
ネットサーフィンをするだけのユーザがヘッダ情報を意識することはない。


Use-Agentヘッダを利用すれば、サイトにアクセスしてきたクライアント(ブラウザ)の種類が
わかります。
(中略)
Refererヘッダを利用することで、自サイトに対してどのようなページがリンクを張っているのか
自サイト内でユーザがどのようにページ間を移動しているのかを把握できます。
(中略)
Accept-Languageヘッダを利用することで、クライアントの対応言語を判定し、バイリンガル
ページを構築することもできます。

参考:10日でおぼえるPHP5 入門教室


(・∀・)ほぅ!ちょっと楽しそう。
それじゃ早速、ソースを貼ろう。
※タグの最初は全角にしてあります。



1 <html>
2 <head><title>ヘッダ情報の取得</title></head>
3 <body>
4 <h1 style="background:#cccccc">ヘッダ情報の取得</h1>
5 <table border="0">
6 <?php
7 $aryHeader=array("HTTP_USER_AGENT","HTTP_ACCEPT_LANGUAGE","HTTP_REFERER");
8 foreach($aryHeader as $name){
9 ?>
10  <tr>
11   <th style="color:#FFFFFF;background:#0086b2;width:80pt;">
12 <?php print($name); ?></th>
13   <td><?php print($_SERVER[$name]); ?></td>
14  </tr>
15 <?php
16 }
17 ?>
18 </table>
19 </body>
20 </html>




ハッハー!見たことある関数はっけん!!
聖闘士には同じ技は二度と通用しないのだ!!なんのはなしだ。


1〜5行目はhtmlなので飛ばす。6行目からPHP

7行目は配列だ。
$aryHeader という変数に、array 関数を使って "HTTP_USER_AGENT","HTTP_ACCEPT_LANGUAGE","HTTP_REFERER" という
3つのデータを格納してる。これは問題ない。
参考:4日目 おみくじとか作っちゃうかモナー!



8行目。
foreach というのは初めて見るな。


foreach命令
foreach(配列 as 仮変数){…ループで行う処理…}
配列の各要素の値を仮変数にセットしつつ、ループを繰り返します。
各要素には、この仮変数を介してアクセスすることができます。

参考:10日でおぼえるPHP5 入門教室


ふむふむ。
説明だけだとよく分からない。
こういう場合は、何が起こるか実際にブラウザで見てみたほうがいい。
サンプル:list_header.php


おぉ。
"HTTP_USER_AGENT","HTTP_ACCEPT_LANGUAGE","HTTP_REFERER" の3つが
順番に表示されている。
でも print は2回しか使ってない。におうな。このへんがあやしい。



9行目。
いったんPHPを閉じて、10行目からhtmlの記述が始まる。
PHPというのは、htmlと混在して書いてもおkらしい。
以前ナイス・tetsunosuke・ギークさんがトラバで教えてくれました。

// PHPの部分とHTMLは分けて書いて、必要なときだけ埋め込む

参考:ギークなお姉さんを目指すブログを友人にも紹介しようと思う。


余談だけど、この // のあとにコメント書くのってギークっぽくていいよね・・・!!!
のあとにコメントとか!すんげぇすんげぇギークっぽい!!!!
使おう。


再びhtmlは飛ばす。
必要そうな参考リンクだけ貼っておく。
参考:<TABLE> ★HTMLタグリファレンス



で、12行目の print
$name を表示しろ、と言っている。
これはページの左側、<table>タグのセル<th>内に、配列で $aryHeader に代入した
"HTTP_USER_AGENT","HTTP_ACCEPT_LANGUAGE","HTTP_REFERER"
3つの文字列を順番に表示させてる。


いいね、foreach の正体をつかんだ気がする。


13行目。
$_SERVER[$name] を表示しろ、と言ってる。
$_SERVER は見たことあるな・・・そうだ。はてブ禁止方法のときに出てきた。
あのときは確か、$agent$_SERVER['HTTP_USER_AGENT'] を代入して、
if ・もしも $agent の最初の6文字がHatenaだったら・・・というコードだった。
HTTP_USER_AGENT は今回も出てきてる。
前述の参考書の説明だと、これでサイトにアクセスしてきたクライアント(ブラウザ)の
種類がわかるそうな。他にもいろいろあるらしい。

PHPでは、サーバに関する環境変数グローバル変数$_SERVERに格納されます。
HTTP_REFERERやREMOTE_ADDR、PHP_SELFなどスクリプト構築において欠かせない
変数群を簡単に取得できるので、それぞれ暗記しておいて損はないです。

参考:PHP:$_SERVER サーバ環境変数


サンプルページを見てみる。
ページの右側、<td>セル内に、ブラウザの情報・言語情報・リファラ情報が表示されてる。



オーケー!
ってことは、foreachというのは$aryHeader に入ってるデータを順番に $name に代入して
{ 以下を繰り返せ、って意味ね。完全に把握した。


15〜17行目で、もう1度PHPで処理命令を閉じてる。閉じるためだけのPHP


以上、終わり!
わぁい!ひとりで理解できたよできたよ!!
これ以外にも繰り返し構文をいくつかやったけど、紙面と眠気の都合上、今回は断念。
今週は仕事のスケジュール的に平日更新できるか分からんけど、できたら繰り返しの話だけ
サクっと書きたい。
書く方向でがんばる。ギークの食べ物食べてがんばろう。