PHP:如何不对 Web 应用程序根目录进行硬编码

标签 php web-applications path document-root

我目前在我的应用程序的配置文件中有以下内容:

define('DOCROOT', dirname(__FILE__).DIRECTORY_SEPARATOR);
define('WEBROOT', 'http://localhost/samples/');

第一行完美运行。我可以在任何地方包含配置文件,然后按预期使用 DOCROOT 常量。

第二行也可以,但它是硬编码的,这意味着当我将这个文件上传到我的网络服务器时,它会出错。它应该是 http://samples.example.com。有什么好方法可以防止这种硬编码吗?我有点认为我必须在某个地方硬编码一些东西,在这种情况下,我能逃脱什么?

最佳答案

我使用以下代码查找基本 URL:

function getBaseURL() {
    return 'http' . (isset($_SERVER['HTTPS']) ? 's' : '') . '://'
         . $_SERVER['HTTP_HOST']
         . rtrim(dirname($_SERVER['SCRIPT_NAME']), '/\\')
         . '/'
    ;
}

关于PHP:如何不对 Web 应用程序根目录进行硬编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6574248/

相关文章:

php - 将值添加到同一数组键中

php - 文档存储在 phpmyadmin 与网站文件夹中?

java - 一个 Java Web 应用程序中是否可以有两种身份验证机制?

c# - 使用 C# 获取每个资源管理器窗口的路径

javascript - 使用 JavaScript 将相对路径转换为绝对路径

php - PHP 中的 If 语句让我难以自拔

php - 如何在phpmydatagrid中显示和编辑2个表的数据

node.js - 在浏览器中使用 Electron 代码

php - Web 应用程序,Android 与 Iphone Scroll

path - 如何防止 Tmux 用重复的路径填充全局 PATH 变量?