这是我想要做的一个例子:
<ul><?php include("list.php") ?></ul>
<?php
    if (PAGE_NAME is index.php) {
        //Do something
    }
    else {
        //Do something
    }
?>
如何获取包含list.php脚本(PAGE_NAME)的文件的名称?我试过了basename(__FILE__),但那给了我list.php.
如果你真的需要知道当前包含哪个文件 - 这是解决方案:
$trace = debug_backtrace();
$from_index = false;
if (isset($trace[0])) {
    $file = basename($trace[0]['file']);
    if ($file == 'index.php') {
        $from_index = true;
    }
}
if ($from_index) {
    // Do something
} else {
    // Do something else
}
如果有人从搜索引擎到达此处,则只有当脚本位于服务器根目录中时,接受的答案才会起作用,因为PHP_SELF是具有相对于服务器根目录的路径的文件名.所以通用的解决方案是
basename($_SERVER['PHP_SELF'])
还要记住,这会返回顶级脚本,例如,如果您有脚本并包含文件,然后在包含文件中包含另一个文件并尝试此操作,您将获得第一个脚本的名称,而不是第二个脚本.
| 归档时间: | 
 | 
| 查看次数: | 6052 次 | 
| 最近记录: |