PHP中是否有办法从服务器获取主机名和文档根?我想这样做而不将它们作为变量存储在你的PHP代码中。我不愿意使用$ _SERVER,因为我听说它不可靠并受到攻击。如何在虚拟主机上完成?是否存在可靠和安全的方法?
答案 0 :(得分:3)
你可以尝试
$docroot = getenv("DOCUMENT_ROOT");
getenv
允许您访问环境变量。您可以通过打印phpinfo
查看可用的所有变量。也许apache_getenv
也有帮助。
答案 1 :(得分:1)
$_SERVER['DOCUMENT_ROOT']
可靠但$_SERVER['SERVER_NAME']
不可靠(请参阅Chris Shiflett’s SERVER_NAME Versus HTTP_HOST)。仅当启用Apache’s UseCanonicalName
时,才会显示规范名称。
答案 2 :(得分:0)
如您所述,您可以访问:http://php.net/manual/en/reserved.variables.php 这里有一个细分,使用realpath()和$ _SERVER来获取doc root: http://www.helicron.net/php/
此外,你可以exec('hostname')或类似的东西来获取主机名。