求助下。怎么把a=ddddd&page=1111中的page=1111这样的删去呢。
这是个url地址,截取出来的参数串。
a=ddddd$page=2334&www=2222
page=1111&m=3234&o=r2345
a=ddddd$wc=2334&page=plo
这三种都有可能。前面,中间,最后。
怎么正则把page=参数值,干掉呢。
我鼓秋了半天正则,写出来个这。page=.*&|\s,还是不行,匹配不出来。
高手指点一下啊。
[解决办法]
$s = 'a=ddddd&page=2334&www=2222';
$s = 'page=1111&m=3234&o=r2345';
$s = 'a=ddddd&wc=2334&page=plo';
//这样比较正规
parse_str($s, $a);
unset($a['page']);
echo http_build_query($a), PHP_EOL;
//正则比较另类
echo preg_replace('/(&?)page=[^&]+(&?)/e', '"$2"?"$1":""', $s);
<?php
$s = 'a=ddddd&page=2334&www=2222';
//$s = 'page=1111&m=3234&o=r2345';
//$s = 'a=ddddd&wc=2334&page=plo';
echo implode('&', array_filter(explode('&', $s), create_function('$str', 'return substr($str, 0, 5) !== "page=";')));