PHP preg_replace URL字段

时间:2010-04-01 19:18:07

标签: php regex preg-replace

看到这个字符串:

$string = "http://www.url.com/?fieldA=123&fieldB=456&fieldC=789";

假设"fieldB"始终具有正的非十进制数值(但不一定是三位数),我需要使用preg_replace命令将其完全删除,以便随后读取该字符串:

$string = "http://www.url.com/?fieldA=123&fieldC=789";

4 个答案:

答案 0 :(得分:3)

$string = preg_replace('/&?fieldB=[0-9]+/', '', $string);

答案 1 :(得分:1)

试试这个:

$string = preg_replace('/&fieldB=[0-9]+/', '', $string);

工作示例代码:

$string = "http://www.url.com/?fieldA=123&fieldB=456&fieldC=789";
$string = preg_replace('/&fieldB=[0-9]+/', '', $string);
echo $string;

//gives http://www.url.com/?fieldA=123&fieldC=789

答案 2 :(得分:1)

使用preg_replace()

$url = preg_replace('!&?fieldB=\d+!', '', $string);

您也应该删除之前的&。另外,请勿使用[0-9]。请改用\d

话虽这么说,PHP具有很好的本机函数来操作URL。另一种方法:

$url = parse_url($string);
parse_str($url['query'], $query);
unset($query['fieldB']);
$url['query'] = http_build_query($query);
$string = http_build_url($url);

注意:很遗憾,HTTP extension不是标准扩展程序,因此您必须安装它。

答案 3 :(得分:0)

$string = preg_replce('/fieldB=([0-9]+)/', '', $string);