我目前在我的应用程序的配置文件中有以下内容:
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/