使用localserver和normalserver

时间:2017-05-04 23:48:48

标签: php server relative-path absolute-path localserver

我有问题。我想同时使用localserver(WAMP)和在线服务器(000webhost)。 现在我的文件路径出现问题。我不能使用像(../contact.php)这样的普通路径,因为我使用php包含文件,然后路径会有所不同,因为我将文件包含在整个网站上。

现在我想使用像(/main/includes/header.inc.php)这样的绝对路径 但是在线服务器和本地服务器上的根文件夹是不同的,因此也不会起作用。

我可以使用任何解决方案吗?

Jelmer

1 个答案:

答案 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';

信用:

  

store constant variable on server via .htaccess