为了账号安全,请及时绑定邮箱和手机立即绑定

PHP如何轻量实现URI变量匹配及修改?

PHP如何轻量实现URI变量匹配及修改?

PHP
紫衣仙女 2019-03-14 14:10:19
如题,例如我有一个地址:abc.com/?abc=123&xyz=987我想把其中的abc变量修改为456,其他变量维持原状,返回新的URI地址。目前使用的方法是正则匹配: function uridis($act,$val){return preg_replace('/(^|&)'.$act.'\=(?:.*?)($|&)/i','\1'.$act.'='.$val.'\2',$_SERVER['QUERY_STRING']);} 在PHP文件中调用: uridis('abc',456); 如果这样实现的话,正则表达式会占用387KB左右的内存。而使用str_replace进行替换: function uridis($act,$val){return trim(str_replace('&'.$act.'='.$_GET[$act].'&','&'.$act.'='.$val.'&','&'.$_SERVER['QUERY_STRING'].'&'),'&');} 则占用的内存更多,大概392KB左右。循环$_GET更不用想,根本没法看。因为我在页面中需要生成大概几十个替换后的URI,程序效率需求非常高。所以请教各位有没有更加轻量的解决方案?非常感谢!
查看完整描述

1 回答

?
斯蒂芬大帝

TA贡献1827条经验 获得超8个赞

function uridis($act,$val){
    $get=$_GET;
    $get[$act] = $val;
    return http_build_query($get);
}

才几十个替换而已,不用考虑性能

查看完整回答
反对 回复 2019-03-18
  • 1 回答
  • 0 关注
  • 355 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信