[英]How can I replace a variable in a get query in PHP?
我有一个网址
http://example.com/test?xyz=27373&page=4&test=5
我想通过替换page=4
到page=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_slice
, unset
或array_filter
来删除不需要的变量并重新生成URL。
如果只是将该URL作为字符串,那么删除信息的标准是什么? 从技术上讲,两者之间没有区别
...?xyz=27373&page=4&test=5
和
...?test=5&xyz=27373&page=4
因此,仅删除第一个参数之外的所有内容可能都不是您想要的。
如果要删除除xyz
参数以外的所有内容。 看看parse_url
和parse_str
您到底想做什么? 这个问题还不清楚。
$ XYZ = $ _GET ['xyz']; $ PAGE = $ _GET ['page'];
?
是否要用另一个值替换每个值,或用一个值替换两个值?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.