PHPの$_SERVER配列をPHP7初級に出る値だけでまとめました
※$_SERVER内のkey=>value多い!全部覚えてられない!
$_SERVER配列とは連想配列で、サーバー変数
と呼ばれています
$_SERVER['key']でvalueが出ます
では早速はじめてのPHP(オライリー本)で出現するサーバー変数を見て行きます
これに載ってないのは出ないハズ
1.$_SERVER['PHP_SELF']
オライリー様曰く、
「現在のリクエストURLのパス名を保持します」
らしい
つまり
http://うんたら.com/あーでも/こーでも.php
というURLにアクセスする場合、
$_SERVER['PHP_SELF']は
/あーでも/こーでも.phpになる
サイトによっては現在実行しているURLのパス名部分と書いてあったりする
パス名が欲しいなら$_SERVER['SCRIPT_NAME']が推薦されているらしい※テストに出るかは不明
2.$_SERVER['REQUEST_METHOD']
オライリー様が仰るには
「Webブラウザが現在のページのリクエストに使ったHTTPメソッド」
らしいGETとかPOSTとかPUTとか
値はかならず大文字で返って来る
3.$_SERVER['QUERY_STRING']
そのままクエリを返す
クエリとはURLで言うと?以降の事
ここで表示するモノを変更できるとかの部分
youtubeのURLとか見るとわかりやすいかも
https://www.youtube.com/watch?v=-7Emqf81ros
だったらv=-7Emqf81rosの分が入ってる※ビデオID
4.$_SERVER['PATH_INFO']
最下層のパス情報
↑みたいにクエリを使わずに最下層のパスを知りたい時
に使う
http://うんたら.com/あーでも/こーでも.php なら
/こーでも.phpが入ってる
5.$_SERVER['SERVER_NAME']
スクリプトが実行されているサーバーのホスト名
基本うんたら.jpとかなんたら.comが入ってるっぽい
仮想なら仮想ドメインが入ってる※上の.comとかもドメインです
6.$_SERVER['DOCUMENT_ROOT']
webサーバ上のディレクトリが入る
aaa.comならusr/local/htdocsとかがドキュメントルートになってたりする
この/の方が値として入ってる
僕等が編集してる側のディレクトリが入ってるイメージでいいのかな?
7.$_SERVER['REMOTE_ADDR']
webサーバーにリクエストを行ったユーザのIP
例:172.22.33.12 みたいな
これなんかテストに出るイメージ
8.$_SERVER['REMOTE_HOST']
webサーバー上でユーザーのIPをホスト名に変換することができるらしく、
変更した場合はREMOTE_HOSTにユーザのホスト名が入る
処理に時間がかかるらしく、殆どのwebサーバーでは変換しないでipのまんまらしい
つまりREMOTE_ADDRがメインで使われる
9.$_SERVER['HTTP_REFERER']
ページに来る前にユーザが閲覧していたサイトのURLが入っている
がしかし。。。簡単に偽装できるらしく信頼性は低い
10.$_SERVER['HTTP_USER_AGENT']
webブラウザの名前が入ってる
クロームとかIE()とか
これも偽装できるらしいけど普通のユーザは偽装しないし統計には役立つやんってオライリー様が言ってました
とりあえずこんな感じです
試験勉強ついでにPHP7技術者認定初級試験に特化した$_SERVERについてまとめてみました
明後日試験なので手遅れかもしれませんね!
※模擬試験では1問足らず落ちました(ケアレスミス多々あり)
明日余裕があればクッキーとセッションについてもまとめてみます
ではでは