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 use include_once files and be able to view the website properly in both localhost and the actual server.
I’ve used $_SERVER['DOCUMENT_ROOT'] before but it doesn’t work on the localhost so it is hard for me to update and do the changes to the website.
What I want to do is to create some sort of config.php file in which I can tell it that the root folder is either called htdocs or public_html and to “start” looking for files from there.
Or is there any other way I can get include paths to work?
I’ve seen replies with e.g. dirname(__FILE__), __DIR__, etc. but they never explained how it would work, where to write it in the code, etc. I’m a bit sick and tired of finding part of the answer and then running around in circles just try and “fill in” the gaps. I’m not a PHP expert, just trying to make my life a bit easier by using it.
dirname(__FILE__)and__DIR__both same and__DIR__comes with PHP 5.3These 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/testSo, 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
So, we use this for
index.phpto includebanner.phpandbanner.phpis waiting in./banners/banner.php;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
includesystem, but question, anyway… 🙂If your image path is changing (so not fixed), you can do like this;