我的项目中有数百个地方包含以下代码:
include $root . $template;
其中$root
是CRM相关部分的文档根目录,$template
是HTML模板文件。 $root
变量对于CRM的不同部分是不同的。
我现在想让CRM的所有部分使用相同的模板文件。我不能简单地将$root
更改为中央文档根目录,因为代码中有其他位置使用该变量。我只想更改它以加载模板。
有没有办法节省时间,所以我不必遍历代码中出现的所有地方?是否有一种方法可以使$template
字符串在连接时覆盖$root
字符串?
即。
$root="$_SERVER['document_root']."\some_folder";
$template="[something_to_ignore_concatination?]".$_SERVER['document_root']."\template_file";
//So $root.$template = just $template
答案 0 :(得分:3)
警告:您在下面看到的是令人厌恶的内容,请勿在真实软件中使用此内容!
假设这些值:
$_SERVER['document_root'] = 'path/to/root'
$root == $_SERVER['document_root'] . '/some_folder' == 'path/to/root/some_folder'
$template == '/' . $_SERVER['document_root'] . '/file.php' == '/path/to/root/file.php'
$root . $template == 'path/to/root/some_folder/path/to/root/file.php'
你可以符号链接
path/to/root/some_folder/path/to/root -> path/to/root/
这样双路径仍然可以解决。
注意:上述路径应视为相对于添加到PHP include_path的其中一个文件夹。