日期:2014-05-17 浏览次数:20735 次
<?php
$str = 'http://127.0.0.1/c/1.php?ft=x7cj
http://127.0.0.1/c/1.php?form=post&ft=gy4e
http://127.0.0.1/c/1.php?ft=7yd4r&form=post';
$str = preg_replace('/[\?&]ft=\w+/','',$str);
var_dump($str);
?>
------解决方案--------------------
$arr=array(
'http://127.0.0.1/c/1.php?ft=x7cj',
'http://127.0.0.1/c/1.php?form=post&ft=gy4e',
'http://127.0.0.1/c/1.php?ft=7yd4r&form=post'
);
print_r(array_map('foo',$arr));
function foo($url){
$ar=parse_url($url);
if(!isset($ar['query'])) return $url;
parse_str($ar['query'],$arr);
unset($arr['ft']);
return $ar['scheme'].'://'.$ar['host'].$ar['path'].($arr ? '?'.http_build_query($arr) : '');
}
------解决方案--------------------
这样写(注释掉后面的$s可测试前面的)
$s = 'http://127.0.0.1/c/1.php?seed=add&ft=7yd4r&form=post';
$s = 'http://127.0.0.1/c/1.php?ft=x7cj';
$s = 'http://127.0.0.1/c/1.php?form=post&ft=gy4e';
$s = 'http://127.0.0.1/c/1.php?ft=7yd4r&form=post';
echo preg_replace('/([?&])ft=[^&]+(&?)/e', '"$2"==""?"":"$1"', $s);
人家给你弄个数组,只不过是让你测试起来方便些