开发者

Require file including variable

开发者 https://www.devze.com 2023-04-08 19:40 出处:网络
I am currently using the following code to include a file in my webpage: require_once $_SERVER[\'DOCUMENT_ROOT\'] . \'/include/file.php\';

I am currently using the following code to include a file in my webpage:

require_once $_SERVER['DOCUMENT_ROOT'] . '/include/file.php';

However, I have now edited my system so I input the URL into a data file in the root which makes other parts of my site function and allows me to use different directories.

In short, I am using a splash page on a website, where the root is now /directory rather than in the root, thus the URL in my data file is http://www.domain.com/directory.

So, what I need to work out is how to point this line at the directory using the variable from the data file which contains the URL

So $_SERVER['DOCUMENT_ROOT'] becomes irrelevant because I need to grab the data from the variable in the data file which is NOT in the root anymore.

It needs to be something like:

require_once (variable from file a few directories back) + absolute path to file;

I want this 开发者_如何学Pythonline of code to be future-proof too, if I need to build a site using a different directory then the root.

I hope that makes sense!


Create a SITE_ROOT and use that instead. That way, it will work with any directory change.

define('SITE_BASE', '/directory/');
define('SITE_ROOT', $_SERVER['DOCUMENT_ROOT'] . SITE_BASE);

You can then use SITE_BASE for creating your URIs:

<a href="<?php echo SITE_BASE ?>subdir/">link</a>

and SITE_ROOT for accessing files on the system:

require_once SITE_ROOT . 'include/file.php';


Have you considered setting include_path in your php.ini file? For instance, my own php.ini file has include_path = ".:/path/to/web/root", which allows me to not worry about where my files are when including them.

In your case, you would want to set it to include_path = ".:/path/to/web/root/directory". If you don't know the path to the web root, just run echo $_SERVER['DOCUMENT_ROOT']; to find it.

This solution is "future-proof", as you only need to change that php.ini value and everything falls into place.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号