LoginSignup
2

posted at

PHP7技術者認定初級試験に出る$_SERVER配列

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問足らず落ちました(ケアレスミス多々あり)

明日余裕があればクッキーとセッションについてもまとめてみます
ではでは

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
2