PHP:从$ _SERVER中移除查询参数[' REQUEST_URI']

时间:2016-01-26 13:29:53

标签: php

我使用以下PHP代码返回脚本的实际URL:

// Returns actual URL with HTTP/HTTPS checking
$URL = 'http' . (isset($_SERVER['HTTPS']) ? 's' : '') . '://' . "{$_SERVER['HTTP_HOST']}{$_SERVER['REQUEST_URI']}"

<link rel="stylesheet" href="<?php echo $URL ?>/css/bootstrap.min.css">

结果是:

http://127.0.0.1:8001/src/css/bootstrap.min.css

但是,如果我在网址中使用urlencode代码,结果就是:

http://127.0.0.1:8001/src/?keyword=all&page=0/css/bootstrap.min.css

如何删除此内容而不在其中一些源文件中包含urlencode

编辑:

这是有效的,但我试图远离这种硬编码的解决方案:

$URL = 'http' . (isset($_SERVER['HTTPS']) ? 's' : '') . '://' . "127.0.0.1:{$_SERVER['SERVER_PORT']}/src"

2 个答案:

答案 0 :(得分:0)

使用此代码:

// Returns actual URL with HTTP/HTTPS checking
$URL = 'http' . (isset($_SERVER['HTTPS']) ? 's' : '') . '://' . "{$_SERVER['HTTP_HOST']}{$_SERVER['REQUEST_URI']}"
$URL =  parse_url($URL, PHP_URL_PATH);
<link rel="stylesheet" href="<?php echo $URL ?>/css/bootstrap.min.css">

答案 1 :(得分:0)

使用PHP_SELF而不是REQUEST_URI

// Returns actual URL with HTTP/HTTPS checking
$URL = 'http' . (isset($_SERVER['HTTPS']) ? 's' : '') . '://' . "{$_SERVER['HTTP_HOST']}{$_SERVER['PHP_SELF']}"