求助下。怎麼把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);
------解決方案--------------------
引用:
Quote: 引用:
$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好幾年了,遇到正則還得百度查。你怎麼學的啊
http_build_query($a), PHP_EOL; 這個都好像不太常用啊。你是怎麼想到的。我怎麼想不到。這是為什麼啊。我不服!
如果你每次都去問百度,而不經過自己結合經驗和知識來嘗試自己寫的話,你永遠想不到一些很神奇的想法
$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=";')));