我有问题。我想同时使用localserver(WAMP)和在线服务器(000webhost)。 现在我的文件路径出现问题。我不能使用像(../contact.php)这样的普通路径,因为我使用php包含文件,然后路径会有所不同,因为我将文件包含在整个网站上。
现在我想使用像(/main/includes/header.inc.php)这样的绝对路径 但是在线服务器和本地服务器上的根文件夹是不同的,因此也不会起作用。
我可以使用任何解决方案吗?
Jelmer
答案 0 :(得分:0)
设置可用于加载文件路径的Web根目录常量ROOT
。对于每个服务器,相应地将其设置为其路径。确保在每个请求的第一个文件命中的顶部加载。
<?php
define('ROOT', `/var/www/html/site`);
...
现在使用常量
加载文件include ROOT . '/directory/file.php';
显然,为每台服务器设置不同的常量。
您也可以将define()放在if语句中。
<?php
if($_SERVER['SERVER_NAME'] === 'localhost'){
define('ROOT','/wamp/dir/'); //obviously not your actual dir
}else{
define('ROOT','/online/dir/'); //obviously not your actual dir
}
<强>更新强>
更好的想法可能是使用环境变量而不是conts。
在每个页面上设置CONST有点单调乏味。我发现这篇文章解释了如何在.htaccess中设置环境变量。这样我们只需要将它设置在一个位置,并可以在所有文件中访问它。
例如:
//.htaccess
SetEnv ROOT /var_www/html/site/
现在我可以在所有.php文件中使用此值获取此值:
<?php
include getenv('ROOT'); . '/directory/file.php';
信用: