Get name of file that is including a PHP script

后端 未结 6 2006
遇见更好的自我
遇见更好的自我 2020-12-16 11:22

Here is an example of what I am trying to do:

index.php

list.php

相关标签:
6条回答
  • Perhaps you can do something like the following:

    <ul>
        <?php
            $page_name = 'index';
            include("list.php")
        ?>
    </ul>
    

    list.php

    <?php
        if ($pagename == 'index') {
            //Do something
        }
        else {
            //Do something
        }
    ?>
    
    0 讨论(0)
  • 2020-12-16 11:54

    The solution basename($_SERVER['PHP_SELF']) works but I recommend to put a strtolower(basename($_SERVER['PHP_SELF'])) to check 'Index.php' or 'index.php' mistakes.

    But if you want an alternative you can do:
    <?php if (strtolower(basename($_SERVER['SCRIPT_FILENAME'], '.php')) === 'index'): ?>.

    0 讨论(0)
  • 2020-12-16 11:59

    In case someone got here from search engine, the accepted answer will work only if the script is in server root directory, as PHP_SELF is filename with path relative to the server root. So the universal solution is

    basename($_SERVER['PHP_SELF'])
    

    Also keep in mind, that this returns the top script, for example if you have a script and include a file, and then in included file include another file and try this, you will get the name of the first script, not the second.

    0 讨论(0)
  • 2020-12-16 12:06

    If you really need to know what file the current one has been included from - this is the solution:

    $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
    }
    
    0 讨论(0)
  • 2020-12-16 12:13

    In the code including list.php, before you include, you can set a variable called $this_page and then list.php can see the test for the value of $this_page and act accordingly.

    0 讨论(0)
  • 2020-12-16 12:14

    $_SERVER["PHP_SELF"]; returns what you want

    0 讨论(0)
提交回复
热议问题