看到这个字符串:
$string = "http://www.url.com/?fieldA=123&fieldB=456&fieldC=789";
假设"fieldB"
始终具有正的非十进制数值(但不一定是三位数),我需要使用preg_replace
命令将其完全删除,以便随后读取该字符串:
$string = "http://www.url.com/?fieldA=123&fieldC=789";
答案 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);