我喜欢使用绝对路径来引用图像,css和php文件,这是从root开始的,地址以“/”开头。
我需要包含全部位于“/ bin / res / include”的php文件。我发现我不能像在html中那样在php中使用绝对路径。经过一些研究,我发现最适合我需要的方法是
define("PHP_ROOT", "/home/a7503679/public_html/bin/res/include/");
然后包含一些文件
include_once(PHP_ROOT."filename.php");
我不想在每个html页面上粘贴第一个定义。我可以进行全局定义吗?我可以在一个地方定义一次该常量并让所有html页面都知道吗?如果是这样,全球的位置和位置在哪里?
dirname(__FILE__);
,因为它只提供了我当前所在文件夹的完整路径,可能不是根目录。$_SERVER['DOCUMENT_NAME']
,因为我正在使用共享托管服务。[更新:解决方案]大家,尤其是RiaD的想法,这就是我所做的:
在我的网站根目录编辑了我的.htaccess文件并添加了以下行
#Loads an init php located at <fullpath>/<path-to-folder-with-php-files-to-include>/init.php
php_value auto_prepend_file /home/a7503679/public_html/bin/res/include/init.php
现在我所有的html文件都会包含那个init.php文件,所以你应该(就像我一样)把你需要的所有常见的PHP代码放在每个html页面上,在我的例子中是这样的:
<?php
define("PHP_ROOT", "/home/a7503679/public_html/bin/res/include/"); #this solves the problem
include 'lang.php'; #translations file
?>
在我需要在每个页面上包含lang.php
之前,现在它已自动完成。如果我需要使用其绝对路径包含任何其他php文件,我只需输入include PHP_ROOT.'filename.php';
答案 0 :(得分:3)
答案 1 :(得分:1)
我认为您要做的是修改include_path in php.ini以包含自定义包含路径。然后你可以只包含没有任何路径限定符的文件,如果它们不在当前目录中,PHP将搜索你的包含路径。如果您无法修改php.ini,请在配置文件中调用set_include_path,您知道无论如何都要包含在每个页面上。 :)
答案 2 :(得分:0)
将define添加到包含在每个页面上的包含页面,如config / database / language file