How to set root folder for PHP include files

前端 未结 5 1870
悲&欢浪女
悲&欢浪女 2020-12-13 15:55

I\'ve spent days researching the internet and I can\'t find the answer that I will understand and are able to implement.

I\'ve got the website in which I want to us

5条回答
  •  無奈伤痛
    2020-12-13 16:27

    dirname(__FILE__) and __DIR__ both same and __DIR__ comes with PHP 5.3

    These are used in order to indicate that the "path of the file where they called".

    URL: http://localhost/test/a.php
    
    DIR: --NIX
         /var/www/test/a.php
         --WIN
         D:\lamp\www\test\a.php
    
    // a.php's inside
    <?php
    echo __DIR__;
    

    Gives you this on linux: /var/www/test

    So, if you need a config parameter in all your project, just define it in your config.php and use it where you want both the file name that will be included.

    ./
      config.php
      index.php
      header.php
      footer.php
      /lib
        foo.php
      /tmp
        bar.php
    

    ./config.php define('ROOT', __DIR__ .'/');

    ./index.php include_once(ROOT .'header.php'); ... include_once(ROOT .'footer.php');

    i.e, using it in tmp dir

    ./tmp/bar.php include_once(ROOT .'lib/foo.php');

    UPDATE

    // config.php
    

    So, we use this for index.php to include banner.php and banner.php is waiting in ./banners/banner.php;

    // index.php and the very first line!
    
    // some html stuff
    // ...
    
    // some more html stuff
    // ...
    

    So, you should include config.php first to where you need it.

    I think, this is basic as far as needed...

    UPDATE

    So your problem is not PHP include system, but question, anyway... :)

    If your image path is changing (so not fixed), you can do like this;

    // config.php
    define("ROOT", __DIR__ ."/");
    define("HTTP", ($_SERVER["SERVER_NAME"] == "localhost")
       ? "http://localhost/your_work_folder/"
       : "http://your_site_name.com/"
    );
    
    // banner.php
    
    

提交回复
热议问题