我在实时服务器和本地服务器上有一个站点的副本。这些文件包含很多包含路径的文件,如下所示:
require_once "/long/path/on/server/to/the/site/functions.php";
本地服务器将此文件和其他类似文件放在同一目录中
现在不是改变文件上的所有这些路径,而是考虑使用.htaccess。这样我就可以将htaccess文件保留在本地,并且在上传到实时服务器时不必一直更改路径。
关于这个的任何想法?
答案 0 :(得分:2)
创建符号链接。这使它变得干净简单。并且可以轻松集成到您的项目中。
对于* nix,您可以使用:
ln -s /path/to/original/ /path/to/linkName
对于Windows(如果文件系统是NTFS),您可以使用:
mklink [/D] drive:/path/to/orignal drive:/path/to/linkName
答案 1 :(得分:0)
您可以为路径定义常量:
define('ROOT_PATH', '/long/path/on/server/to/the/site/');
require_once ROOT_PATH . "functions.php";
或者您可以更改包含路径
set_include_path('/long/path/on/server/to/the/site/');
require_once "functions.php";
答案 2 :(得分:0)
为了让您的生活更轻松,为什么不实施自动加载器:
class AutoLoader
{
public function loadLibFile($class)
{
$filename = '/long/path/on/server/to/the/site/' . $class . '.php';
if (!is_readable($filename)) {
return false;
}
include($filename);
}
}
$autoloader = new AutoLoader();
spl_autoload_register(array($autoloader, 'loadLibFile'));
答案 3 :(得分:0)
通常,您甚至不需要为此配置Web服务器配置,因为默认情况下已在正确配置的服务器中定义了这样的变量。
require_once $_SERVER['DOCUMENT_ROOT']."/functions.php";
将在任何环境中加载适当的文件。
尽管如此,您可以使用SetEnv
指令设置任何环境变量,并在PHP脚本中从$ _SERVER数组中读取它。
但是,您不应该在整个脚本中使用此变量 更好的做法是使用它来创建一个将在以后使用的常量 你可以通过mace创建这个恒定的条件,取决于环境。
对于具有单一入口点的系统,事情变得更加容易:您可以使用入口点脚本地址构建根路径。