一般社団法人 全国個人事業主支援協会

COLUMN コラム

  • よくわからなかったPHPのコードが解決した話
下記のコードについてよくわからなかったが解説をもらった結果解決した話です。
まずこのコードが何をしているかですが、特定のサイトに飛ぶときにURLを保管してアクセスしてくれるよ!!!!っていうものなんですね。(コードは一部しか表示していません。)
そして下に解説を書かせて頂きました。
こういう風にすることによって必ずトップページに飛ぶ・・・なんてことも出来る様になるっぽいです。
それで教えてもらった人にめっちゃ使えますね!って言ったら、「こういった処理は大体外部ツールで処理するので概要だけ把握できればいい」と言われまして・・・
ここで結構な時間悩んでいたのですが、結局は外部ツールで解決出来ちゃうんですよね。

<?php

define(‘ROOT_PATH’, str_replace(‘public’, ”, $_SERVER[“DOCUMENT_ROOT”]));
$parse = parse_url($_SERVER[“REQUEST_URI”]);
// ファイル名が省略されていた場合、index.phpを補填する
if(mb_substr($parse[‘path’], -1) === ‘/’){
    $parse[‘path’] .= $_SERVER[“SCRIPT_NAME”];
}
require_once(ROOT_PATH. ‘Views’ .$parse[‘path’]);
//ROOT_PATH=D:\trainning_php\Lesson6\public← publicを消したもの →つまり「D:\trainning_php\Lesson6\」
?>
//defineで定数を定義している。
//publicと言う文字列をstr_replaceで取り除いている。
//上のパスに「Views」をくっつける。
//更に上のパスに「.$parse[‘path’]」をくっつける。つまり「/Players/」となるが、最後の文字が「/」で終わっているのでif文の処理で
//index.phpが追加される。なので結果的に「.$parse[‘path’]」は「/Players/index.php」となる。
//↓
//最後にrequire_once(ROOT_PATH. ‘Views’ .$parse[‘path’]); の部分ですべて結合されると
//D:\trainning_php\Lesson6\Views/Players/index.phpとなる。
The following two tabs change content below.

佐藤 海

この記事をシェアする

  • Twitterでシェア
  • Facebookでシェア
  • LINEでシェア