繁体   English   中英

如何在PHP的get查询中替换变量?

[英]How can I replace a variable in a get query in PHP?

我有一个网址

http://example.com/test?xyz=27373&page=4&test=5

我想通过替换page=4page=XYZ来进行转换

如何使用preg_replace做到这一点?

是的,您可以使用

$oldurl = "http://test.com/test?xyz=27373&page=4&test=5"
$newurl = preg_replace("/page=\d+/", "page=XYZ", $oldurl);

或者,您可以从$_GET超全局变量重构URL。

您是否要将xyz的值设置为页面值? 我认为您可能需要指定更多内容。 但是,如果您不知道正则表达式,则很容易修改。

$url = 'http://test.com/test?xyz=27373&page=4&test=5';
$urlQuery = parseUrl($url, PHP_URL_QUERY);
parse_str($urlQuery, $queryData);
$queryData['page'] = $queryData['xyz'];
unset($queryData['xyz']);
$query = http_build_query($queryData);
$outUrl = substr_replace($url, $query, strpos($url, '?'));
$url = 'http://test.com/test?xyz=27373&page=4&test=5';
preg_match('/xyz=([^&]+)/', $url, $newpage);
$new = preg_replace('/page=([^&]+)/', $newpage[0], $url);
$new = preg_replace('/xyz=([^&]+)&/', '', $new);

这将变成

http://test.com/test?xyz=27373&page=4&test=5

进入

http://test.com/test?page=27373&test=5

如果这不是您要执行的操作,请原谅我,但您的问题不太清楚。

我确定您可以使用正则表达式执行某些操作。 但是,如果您提供的URL是当前正在处理的URL,则$ _Request中已经包含了所有请求变量。

因此,重建URL,替换您要替换的值,然后重定向到新URL。

否则,请查找正则表达式教程。

如果这是您自己的页面(并且您当前在该页面上),则这些变量将出现在名为$_GET的全局变量中,并且您可以使用array_sliceunsetarray_filter来删除不需要的变量并重新生成URL。

如果只是将该URL作为字符串,那么删除信息的标准是什么? 从技术上讲,两者之间没有区别

...?xyz=27373&page=4&test=5

...?test=5&xyz=27373&page=4

因此,仅删除第一个参数之外的所有内容可能都不是您想要的。

如果要删除除xyz参数以外的所有内容。 看看parse_urlparse_str

您到底想做什么? 这个问题还不清楚。

$ XYZ = $ _GET ['xyz']; $ PAGE = $ _GET ['page'];

是否要用另一个值替换每个值,或用一个值替换两个值?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM