php怎么把链接上的参数去掉
-
要将链接上的参数去掉,可以使用PHP中的parse_url()和http_build_query()两个函数来实现。以下是具体的方法:
1. 使用parse_url()函数解析链接:
“`php
$url = “http://example.com?param1=value1¶m2=value2”;
$parsedUrl = parse_url($url);
“`解析后的结果会返回一个包含链接各个部分的关联数组。在这个示例中,结果如下:
“`
Array
(
[scheme] => http
[host] => example.com
[path] => /
[query] => param1=value1¶m2=value2
)
“`2. 使用parse_str()函数将查询字符串解析为数组:
“`php
parse_str($parsedUrl[‘query’], $params);
“`解析后的结果会返回一个关联数组,其中包含解析后的参数和值。在这个示例中,结果如下:
“`
Array
(
[param1] => value1
[param2] => value2
)
“`3. 将参数数组中的参数移除:
“`php
unset($params[‘param1’]);
unset($params[‘param2’]);
“`这里使用unset()函数将指定的参数从数组中移除。
4. 使用http_build_query()函数将修改后的参数数组重新构建为查询字符串:
“`php
$newQuery = http_build_query($params);
“`构建完成后,$newQuery将保存修改后的查询字符串。
5. 使用parse_url()函数解析链接,并按照以下方式重新构建链接:
“`php
$newUrl = $parsedUrl[‘scheme’] . ‘://’ . $parsedUrl[‘host’] . $parsedUrl[‘path’] . ‘?’ . $newQuery;
“`这样,$newUrl就是去除参数后的新链接。
完整的代码示例如下:
“`php
$url = “http://example.com?param1=value1¶m2=value2”;
$parsedUrl = parse_url($url);parse_str($parsedUrl[‘query’], $params);
unset($params[‘param1’]);
unset($params[‘param2’]);$newQuery = http_build_query($params);
$newUrl = $parsedUrl[‘scheme’] . ‘://’ . $parsedUrl[‘host’] . $parsedUrl[‘path’] . ‘?’ . $newQuery;
echo $newUrl;
“`以上就是使用PHP将链接上的参数去掉的方法。通过解析链接、操作参数数组,然后重新构建链接,可以实现去除链接参数的目的。
2年前 -
PHP可以通过使用`parse_url()`函数来解析URL,并使用`parse_str()`函数来解析查询字符串参数。然后,可以使用`http_build_query()`函数来重新构建URL,但不包括查询字符串参数。以下是在PHP中去除URL参数的几种方法:
1. 使用parse_url()和parse_str()函数:
“`php
$url = “https://www.example.com/page.php?param1=value1¶m2=value2”;
$parts = parse_url($url);
parse_str($parts[‘query’], $query);
unset($query[‘param1’]); // 移除param1参数
unset($query[‘param2’]); // 移除param2参数
$newUrl = $parts[‘scheme’] . “://” . $parts[‘host’] . $parts[‘path’] . “?” . http_build_query($query);
echo $newUrl;
“`2. 使用正则表达式:
“`php
$url = “https://www.example.com/page.php?param1=value1¶m2=value2″;
$newUrl = preg_replace(‘/(&|\?)param1=[^&]+/’, ”, $url);
$newUrl = preg_replace(‘/(&|\?)param2=[^&]+/’, ”, $newUrl);
echo $newUrl;
“`3. 使用$_SERVER[‘QUERY_STRING’]和$_SERVER[‘SCRIPT_NAME’]:
“`php
$url = “https://www.example.com/page.php?param1=value1¶m2=value2”;
$parts = explode(“?”, $url);
$scriptName = $_SERVER[‘SCRIPT_NAME’];
$queryString = $_SERVER[‘QUERY_STRING’];
$queryParams = explode(“&”, $queryString);
$newQueryParams = array();
foreach ($queryParams as $param) {
$paramParts = explode(“=”, $param);
$paramName = $paramParts[0];
if ($paramName != “param1” && $paramName != “param2”) {
$newQueryParams[] = $param;
}
}
$newUrl = $parts[0] . “?” . implode(“&”, $newQueryParams);
echo $newUrl;
“`4. 使用$_GET和unset()函数:
“`php
$url = “https://www.example.com/page.php?param1=value1¶m2=value2”;
unset($_GET[‘param1’]); // 移除param1参数
unset($_GET[‘param2’]); // 移除param2参数
$newUrl = $url . “?” . http_build_query($_GET);
echo $newUrl;
“`5. 使用http_build_url()函数(需要安装pecl_http扩展):
“`php
$url = “https://www.example.com/page.php?param1=value1¶m2=value2”;
$parseUrl = parse_url($url);
$query = array();
parse_str($parseUrl[‘query’], $query);
unset($query[‘param1’]); // 移除param1参数
unset($query[‘param2’]); // 移除param2参数
$newUrl = http_build_url($parseUrl, array(“query” => http_build_query($query)));
echo $newUrl;
“`这些方法可以从URL中移除特定的查询字符串参数,并生成一个新的URL。根据情况选择适合您的需求的方法。
2年前 -
PHP提供了多种方法来去掉链接上的参数。以下是一些常见的方法和操作流程:
1. 使用正则表达式替换方法:可以使用preg_replace函数来替换链接中的参数部分。代码示例如下:
“`php
$url = ‘http://example.com/?param1=value1¶m2=value2’;
$newUrl = preg_replace(‘/\?.*/’, ”, $url);
echo $newUrl; // 输出:http://example.com/
“`上述代码中,使用正则表达式`/\?.*/`匹配参数部分,并替换为空字符串。
2. 使用parse_url函数解析URL:可以使用parse_url函数来解析URL,然后再拼接URL的其他部分。代码示例如下:
“`php
$url = ‘http://example.com/?param1=value1¶m2=value2’;
$parts = parse_url($url);$newUrl = $parts[‘scheme’] . ‘://’ . $parts[‘host’] . $parts[‘path’];
echo $newUrl; // 输出:http://example.com/
“`上述代码中,首先使用parse_url函数解析URL,然后将解析得到的scheme、host和path拼接成新的URL。
3. 使用$_SERVER[‘REQUEST_URI’]获取当前URL:可以使用全局变量`$_SERVER[‘REQUEST_URI’]`来获取当前请求的URL,然后使用正则表达式或字符串处理方法去除参数部分。代码示例如下:
“`php
$currentUrl = $_SERVER[‘REQUEST_URI’];
$newUrl = preg_replace(‘/\?.*/’, ”, $currentUrl);
echo $newUrl; // 输出当前URL的去参版本
“`上述代码中,首先使用`$_SERVER[‘REQUEST_URI’]`获取当前URL,然后使用正则表达式`/\?.*/`匹配参数部分并替换为空字符串。
无论使用哪种方法,注意要进行参数的安全性验证,确保去除参数后的URL是有效和安全的。
2年前