我喜歡使用它們的絕對路徑引用圖像,css和php文件,即從根開始,地址以「/」開頭。在一個地方定義根路徑
我需要包含所有位於「/ bin/res/include」的php文件。我想通了,我不能在PHP中使用絕對路徑,因爲我在HTML中。經過一番研究,我發現適合我的需要的最好的方法是
define("PHP_ROOT", "/home/a7503679/public_html/bin/res/include/");
,然後包括一些文件
include_once(PHP_ROOT."filename.php");
我不想粘貼第一每個HTML頁面上定義。我可以做一個全局定義嗎?我可以在一個地方定義一個不變的時間,並讓所有html頁面都知道它嗎?如果是這樣,全球地方如何以及在哪裏?
- 我不能使用
dirname(__FILE__);
因爲只給出了完整路徑,我目前在文件夾中,這可能不是根。 - 我無法使用
$_SERVER['DOCUMENT_NAME']
,因爲我正在使用共享託管服務。
[更新:解決方案] THX每一個人,尤其是里亞德爲它的想法,這是我做了什麼:
編輯我的.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';
該文件「prepend」是一個PHP文件的定義代碼? '$ _SERVER ['DOCUMENT_ROOT']'返回'/ usr/local/apache/htdocsa',這個路徑與任何可用的地方都不對應(我甚至不知道它在哪!!:P) – dialex