如何从HTML中所有URL移除指定变量?
移除HTML链接中指定URL变量的解决方案
核心思路
不用直接移除整个<a>标签,而是精准匹配链接里的var1=1234变量(包括它前面的&或?),保留链接其他部分和标签结构。
修正后的代码
// 移除URL中的var1=1234变量,处理两种情况:变量在开头(?var1=1234)或中间(&var1=1234) echo preg_replace('#(<a[^>]*href="[^"]*)(\?|&)var1=1234(&?)([^"]*)("[^>]*>)#i', '$1$3$4$5', $string);
代码说明
- 正则会匹配
<a>标签里的href属性 - 精准定位
var1=1234,同时处理它前面的?(当变量是第一个参数时)或&(当变量在中间时) - 如果变量后面还有其他参数,会保留后续内容;如果是最后一个参数,会自动去掉多余的
&
额外提醒
如果var1的值可能变化(比如不是固定1234),可以把正则里的var1=1234改成var1=[^&]*,这样就能移除任何值的var1变量。
内容的提问来源于stack exchange,提问作者Simon Hirst
相关产品推荐
相关产品推荐

