如何计算PHP脚本根的URL?
我有以下网址: 我需要计算app_dev.php脚本的根URL。上述结果应为: 它将作为图像的基本路径,以使其路径成为绝对路径 我如何计算上述路径,并适应不同的设置、虚拟主机等如何计算PHP脚本根的URL?,php,Php,我有以下网址: 我需要计算app_dev.php脚本的根URL。上述结果应为: 它将作为图像的基本路径,以使其路径成为绝对路径 我如何计算上述路径,并适应不同的设置、虚拟主机等 我希望这是有意义的!:) 简单到:$path=$\u服务器['HTTP\u主机']。目录名($\u服务器['PHP\u SELF']) 要获得成功,您必须这样做: $path = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on')) ? 'h
我希望这是有意义的!:) 简单到:
$path=$\u服务器['HTTP\u主机']。目录名($\u服务器['PHP\u SELF'])
要获得成功,您必须这样做:
$path = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on')) ? 'https://' : 'http://') . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']);'
这将产生如下结果:
http://localhost/mysite.loc/web/
https://localhost/mysite.loc/web/
这可能会给你你想要的。如果我正确地解释了您的问题,那么您可以执行以下操作:
$host='http://'。$\u服务器['http\u主机]代码>
$dir=rtrim(dirname($\u SERVER['PHP\u SELF']),'/\\')代码>
然后,echo$host.$dir
应该为您提供基本路径,您可以向其中添加所需的任何路径 看起来这就是我需要的:
$url = strpos($_SERVER['SERVER_SIGNATURE'], '443') !== false ? 'https://' : 'http://';
$url .= $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
$split = preg_split('%/|\\\\%i', $_SERVER['SCRIPT_NAME']);
$url = preg_split("/{$split[count($split)-1]}/i", $url);
做了这个把戏,我现在只需要测试它。假设你想在app\u dev.php中使用它
非常简单:
$dir = dirname($_SERVER['PHP_SELF'])."/";
请注意,您不需要零件,这很愚蠢。图像的绝对路径是个坏主意。您的映像将在服务器上生成一个新的请求,这将降低性能,而不仅仅是“命中”。如果是绝对必需的,只需在配置文件中写入基本url即可。@grunk您所说的“命中”是什么,以及它与“新请求”的区别是什么?@grunk每个路径在离开浏览器时都会变成绝对路径。你在说什么?我在想绝对uri会触发额外的dns查找,但是如果浏览器转换为相对绝对,应该没有区别。你的第一个答案是错误的。请编辑它,我将删除否决票。@Pekka:对于这个:“简单到:$\u SERVER[“SCRIPT\u NAME”];”@Pekka,这就是为什么我说:“你的第一个答案错了。请编辑它,我将删除否决票。”@Pekka,我不能。它说我的投票被阻止了,直到他编辑了答案。我没有立即取消它,我正在浏览其他问题…@Charlie-ah。修正了你的问题,现在应该可以了。