我有以下功能获取当前页面网址:
<?php
// get current page url
function currentPageUrl() {
$pageURL = 'http';
if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
$pageURL .= "://";
if ($_SERVER["SERVER_PORT"] != "80") {
$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
}
else {
$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
}
echo $pageURL;
}
?>
打印哪些:
http://localhost/gallery.php?id=23&type=main
我想删除网址中的“&amp; type = main”。所以在回显$ pageURL之前,我添加以下行:
$pageUrl = preg_replace("&type=main", "", $pageURL);
但它仍会返回包含type = main的完整网址。我怎样才能从网址中删除它?
答案 0 :(得分:3)
另一种解决方案可能是:
parse_url
或$_SERVER['QUERY_STRING']
将参数列表提取为字符串parse_str
将查询字符串转换为包含每个参数及其值的数组 - 按参数名称索引。unset($array['type']);
可能有所帮助; - )http_build_query
重新构建查询字符串。
比字符串操作更复杂 - 当然 - 但更可靠,我会说; - )
答案 1 :(得分:1)
您可以将网址投入parse_url。它将返回一个数组,您可以根据需要重建该数组。
答案 2 :(得分:0)
试试这个:
$pageUrl = str_replace('&type=main', '', $pageURL);
答案 3 :(得分:0)
您是否尝试过任何其他$ _SERVER变量?
有很多,其中一些已经包含你需要的一切,没有任何替换
phpinfo(32);
将显示所有
答案 4 :(得分:0)
PHP标识符区分大小写。你可能想把它分配给同一个变量。
$pageURL = preg_replace("&type=main", "", $pageURL);
要么是这样,要么您需要更改代码的残余部分以使用$pageUrl
而不是$pageURL
。