PHP preg_replace 表达式删除 URL 参数

标签 php preg-replace url-parameters

我想使用 preg_expression 从 URL 中删除所有出现的特定参数模式。如果存在,还删除最后一个“&” 模式如下:make=xy(“make”是固定的;“xy”可以是任意两个字母)

例子:

http://example.com/index.php?c=y&make=yu&do=ms&r=k&p=7&

处理完preg_replace,结果应该是:

http://example.com/index.php?c=y&do=ms&r=k&p=7

我尝试使用:

$url = "index.php?ok=no&make=ae&make=as&something=no&make=gr";
$url = preg_replace('/(&?lang=..&?)/i', '', $url);

但是,这并没有很好地工作,因为我的 URL 中有 make=xx 的重复项(这种情况可能发生在我的应用程序中)。

最佳答案

你不需要正则表达式:

$url = "http://example.com/index.php?ok=no&make=ae&make=as&something=no&make=gr&";

list($file, $parameters) = explode('?', $url);
parse_str($parameters, $output);
unset($output['make']); // remove the make parameter

$result = $file . '?' . http_build_query($output); // Rebuild the url
echo $result; // http://example.com/index.php?ok=no&something=no

关于PHP preg_replace 表达式删除 URL 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15783116/

相关文章:

javascript - 这段 JavaScript 代码安全吗?

php - 从当前 php 刷新另一个页面

php - 有没有办法告诉 curl 不使用缓存

php - [SMTP : Failed to connect socket: fsockopen(): unable to connect to ssl://smtp. gmail.com :465 (Unknown error) (code: -1, 响应:)]

javascript - 如何将不同的元素 ID 传递给同一个函数?

php - preg_replace UTF-8 不起作用

php - 用逗号替换逗号后跟空格

如果 num_rows 大于零,则 PHP header

jquery - 如何使用 jQuery 删除/取消设置一些获取参数并刷新

javascript - 如何在 Express 中获取 URL 参数?