Php 在一个位置一次性定义根路径

Php 在一个位置一次性定义根路径,php,html,absolute-path,Php,Html,Absolute Path,我喜欢使用图像、css和php文件的绝对路径,即从根开始,地址以“/”开头 我需要包含所有位于“/bin/res/include”的php文件。我发现我不能像在html中那样在php中使用绝对路径。经过一些研究,我发现适合我需要的最好方法是 define("PHP_ROOT", "/home/a7503679/public_html/bin/res/include/"); 然后包含一些文件 include_once(PHP_ROOT."filename.php"); 我不想在每个html页面

我喜欢使用图像、css和php文件的绝对路径,即从根开始,地址以“/”开头

我需要包含所有位于“/bin/res/include”的php文件。我发现我不能像在html中那样在php中使用绝对路径。经过一些研究,我发现适合我需要的最好方法是

define("PHP_ROOT", "/home/a7503679/public_html/bin/res/include/");
然后包含一些文件

include_once(PHP_ROOT."filename.php");
我不想在每个html页面上粘贴第一个define。我可以做一个全局定义吗?我可以在一个地方一次性定义该常量,并让所有html页面都知道它吗?如果是的话,全球的位置在哪里


  • 我不能使用
    dirname(_文件__)
    
  • 我无法使用
    $\u服务器['DOCUMENT\u NAME']
    ,因为我正在使用共享主机服务

[更新:解决方案]thx各位,特别是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
#加载位于//init.php的init php
php_value auto_prepend_file/home/a7503679/public_html/bin/res/include/init.php
现在,我的所有html文件都将包含init.php文件,因此您应该(正如我所做的那样)在每个html页面上放上您需要的所有常见php代码,在我的例子中是:

<?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'

我认为您要做的是修改您的自定义包含路径。然后,您可以只包含没有任何路径限定符的文件,如果它们不在当前目录中,PHP将在您的包含路径中搜索它们。如果您无法修改php.ini,请在配置文件中调用,您知道您必须在每个页面上都包含该文件。:)

您可以在
中使用.htaccess


PS:
$\u服务器['DOCUMENT\u ROOT']
也应该可以工作(在共享主机上)

将定义添加到包含在每个页面上的包含页面,就像配置/数据库/语言文件一样

我不知道是否可以修改或创建
php.ini
文件,但我确实有一个
.htaccess
文件。
php.ini
应该放在哪里?我想我没有任何配置文件包含在每个页面中,你能举个例子吗?有一个。。。我可以把定义粘贴到css文件中吗?听起来很邪恶!我打印了一个phpinfo(),发现我在
/usr/local/lib
上已经有了一个
php.ini
,我不可能到达那里。有没有办法使用.htaccess文件包含一个“init”php文件?这似乎比使用css文件更直观。要“prepend”的文件应该是带有define代码的php文件吗?
$\u服务器['DOCUMENT\u ROOT']
返回
/usr/local/apache/htdocsa
,该路径与任何可用位置都不对应(我甚至不知道它在哪里!:P)