ホームページ  >  記事  >  バックエンド開発  >  以下のコードの具体的な処理については、PHP の達人に詳しく説明してもらってください。

以下のコードの具体的な処理については、PHP の達人に詳しく説明してもらってください。

WBOY
WBOYオリジナル
2016-06-13 12:10:26800ブラウズ

以下のコードの具体的な処理を詳しく説明してください
ファイル名:index.php(ルートディレクトリ直下)
コードは次のとおりです:
define('IS_MEMBER' , TRUE);
define('FCPATH', dirname(dirname(__FILE__)).'/');
if (isset($_GET['s']) && preg_match('/^[a-z] $/i', $ _GET['s']) && $_GET['s'] != 'メンバー') {
if (is_dir(FCPATH.$_GET['s'])) {
定義('APPPATH', FCPATH.$_GET['s'].'/');
定義('APP_DIR', $_GET['s']);
$_GET['d'] = 'member';
} elseif (is_dir(FCPATH.'app/'.$_GET['s'].'/')) {
define('APPPATH', FCPATH.'app/'.$ _GET['s'] .'/');
define('APP_DIR', $_GET['s']);
$_GET['d'] = 'メンバー';
}
}
if (!define('APPPATH'))define('APPPATH', dirname(__FILE__).'/');
require FCPATH.'index.php';
これで終わりですphp ファイルのコード全体、それだけです コンテンツはありません
パラメータがindex.php?c=register&m=indexの場合、プログラムはルートディレクトリの/templatesmemberdefaultregister.htmlのコンテンツの表示を開始します
パラメータがIndex.php?c=login&m=index の場合、プログラムはルート ディレクトリの /templatesmemberdefaultlogin.html の内容を表示し始めます
パラメータが変更されると、HTML ファイル内の内容のみが表示されます。 アドレス バーのアドレス。変更されないままであるか、index.php?c=xxxx&m=index ですが、パラメータが再び変更されます
これらの行はどのようなプロセスであり、HTML 内のファイルの内容が表示されるのはなぜですか?

以下のコードの各文の具体的な処理については、PHP マスターに詳しく説明してもらいます。よろしくお願いします。
------解決策----------------------
ベースで指定されたページに移動することですプログラムの渡されたパラメータについて。

ここでの判断は 2 つあります。1 つは、必要なパラメータが正常に渡されたかどうかを判断することです。もう 1 つは、指定されたディレクトリがルート ディレクトリにあるか、アプリ ディレクトリにあるかを判断することです。判定結果は該当ページへジャンプします。

------解決案----------------------わからなくても大丈夫このコードは、$_GET['c'] に基づいて選択的なアクションを実行しません (FCPATH.'index.php' で行われます)
このコードは、$_GET[' に基づいて入力すべきものを選択するだけです。 s'] プロジェクト
とテストした 2 つの URL:
index.php?c=register&m=index
index.php?c=login&m=index
には s パラメータ

------解決策----------------------
define('FCPATH', dirname(dirname( __FILE__ )).'/'); 現在のファイルの親ディレクトリ


$fn = 'templates/member/default/register.html';<br />echo dirname($fn); // templates/member/default<br />echo dirname(dirname($fn)); // templates/member
-----解決策のアイデア---------- --- --------
プリントアウトして見て頂ければ分かるでしょうか? echo FCPATH.'index.php';

-----ソリューションのアイデア----------------------
最後に実行されるのは、require BASEPATH です。
もちろん、これはこの中にあります

つまり、 $_GET[ がある場所を見つけます。 'c'] が処理されます

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。