在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Java  PHP  Python/ PHP如何輕量實現(xiàn)URI變量匹配及修改?

PHP如何輕量實現(xiàn)URI變量匹配及修改?

如題,例如我有一個地址:
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);

如果這樣實現(xiàn)的話,正則表達式會占用387KB左右的內存。
而使用str_replace進行替換:

function uridis($act,$val){return trim(str_replace('&'.$act.'='.$_GET[$act].'&','&'.$act.'='.$val.'&','&'.$_SERVER['QUERY_STRING'].'&'),'&');}

則占用的內存更多,大概392KB左右。循環(huán)$_GET更不用想,根本沒法看。
因為我在頁面中需要生成大概幾十個替換后的URI,程序效率需求非常高。
所以請教各位有沒有更加輕量的解決方案?非常感謝!

回答
編輯回答
情殺
function uridis($act,$val){
    $get=$_GET;
    $get[$act] = $val;
    return http_build_query($get);
}

才幾十個替換而已,不用考慮性能

2017年8月19日 14:40