作成日:2017-11-22, 更新日:2020-10-15
URL関連
・「$_SERVER」を「var_dump()」すれば何が取れているかわかる
- 現在表示しているURL(パラメーターあり:REQUEST_URI)
-
$urlNow = (empty($_SERVER["HTTPS"]) ? "http://" : "https://") . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"];
- 現在表示しているURL(パラメーターなし:SCRIPT_NAME)
-
$urlNow = (empty($_SERVER["HTTPS"]) ? "http://" : "https://") . $_SERVER["HTTP_HOST"] . $_SERVER["SCRIPT_NAME"];
- GETパラメーター
-
$prmGet = $_SERVER["QUERY_STRING"];
- GETパラメーター(連想配列で取得)
-
parse_str($_SERVER["QUERY_STRING"], $aryPrms); // 第2引数に結果を格納される // var_dump($aryPrms); // $aryPrmsの中にGETパラメーターが連想配列で展開されている
- リンク元
-
$urlRef = $_SERVER["HTTP_REFERER"];
- ファイル名のみ or ファイル名なし
- 参照:「PHP URLやPATHからファイル名とファイル名抜きが欲しい」
現在のURL絡み
- 現在表示しているURL
-
$url = (empty($_SERVER['HTTPS']) ? 'http://' : 'https://') . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
- 表示しようとしたURL1
-
$url = $_SERVER['REQUEST_SCHEME'] . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
- 表示しようとしたURL2(※http_build_url()で組み立て)
-
$url = http_build_url('', array('scheme'=>$_SERVER['REQUEST_SCHEME'], path'=>$_SERVER['REQUEST_URI']));
- 表示しようとしたURL3(※http_build_url()で組み立て:「Scheme」を「http」にする(サーバの設定次第?))
-
$url = http_build_url('', array(path'=>$_SERVER['REQUEST_URI']));
- 表示しようとしたURLのドメイン差し替え(http_build_url()で組み立て)
-
$url = http_build_url('//example.com', array('scheme'=>$_SERVER['REQUEST_SCHEME'], path'=>$_SERVER['REQUEST_URI']));
- 表示しようとしたURLのSchemeとドメイン差し替え(http_build_url()で組み立て)
-
$url = http_build_url('https://example.com', array(path'=>$_SERVER['REQUEST_URI']));
- FuelPHPで現在表示しているURL
-
$url = \Uri::current();
▼関係のある関数たち
・parse_url() - URLパース
・pathinfo() - ファイルパスからファイルに関する情報取得
・basename() - ファイルパスから最後の名前(ファイル名)を取得
・http_build_url() - URLの組み立て
・$_SERVER - リクエストなどの各情報
FuelPHPで・・・例えばルーティングで「'_404_' => 'error/404'」としたとき
▼存在しないページ「http://〇〇〇/hoge/unknown」にアクセスしたとき
echo \Uri::current(); // → http://〇〇〇/error/404 echo http_build_url('', array(path'=>$_SERVER['REQUEST_URI'])); // → http://〇〇〇/hoge/unknown
PATH関連
・「__FILE__」をゴニョゴニョする
・PHP5.3.0以上なら「__DIR__」が使える
- 自分自身の絶対PATH(ファイル名まで)
-
$pathMy = __FILE__;
- 自分自身の絶対PATH(ファイル名なし)
-
$pathDir = dirname(__FILE__); // PHP5.3.0以上なら下記でもOK // $pathDir = __DIR__;
- 自分自身のファイル名
-
$pathFile = basename(__FILE__);
- 自分自身のファイル名の拡張子無し
-
$pathFile = basename(__FILE__, '.php') // 削除する拡張子を第2引数へ
現在表示しているページのIPアドレス
▼「gethostbyname()」がドメインからIPを調べてくれるヤツ
echo gethostbyname($_SERVER['HTTP_HOST']);