2

page1.php:

include 'page2.php';
echo $info;

page2.php:

$info = "some info";
if(!included){
  echo 'Why are you on this page?';
}

の目的は、がin経由で読み込まれたか、ユーザーがページを直接要求したかif(!included){を判断することです。そのような値を返す関数はドキュメントにありません。どうすればそのような関数を作成できますか?page2.phpincludepage1.php

4

3 に答える 3

5

基本的に 2 つのオプションがあります。

a)debug_backtraceあなたが含まれているかどうかを確認してください

$bt = end(debug_backtrace()); // supposing that you don't include in functions / from other included files etc...
if (!empty($bt) && in_array($bt["function"], array("include", "include_once", "require", "require_once"))) {
    // you're being included!
}

b) page1.php で定数、変数などを定義し、page2.php が存在するかどうかを確認します (definedまたはisset)

于 2013-04-18T16:27:04.727 に答える
1
if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) {
   echo "wild and free!";
}
于 2013-04-18T16:30:41.713 に答える