我有一个脚本,以表格的形式将一些HTML引入我的网页。我想用PHP preg_replace替换HTML中包含的部分URL。 URL包含一些始终不同的文本。该网址在网页中不是唯一的,但我想要替换的网址仅在特定图片之前显示。
到目前为止,我的(不工作,可笑,可能完全错误)尝试如下:
$result = preg_replace( '/\http://www.mysite.com/script.php?&variable=1.*\<img src="http://www.mysite.com/images/image.gif"', 'http://www.mysite.com/script.php?.*\<img src="http://www.mysite.com/images/image.gif"', $result );
上述示例尝试从页面上的单个网址中删除&variable=1
。该网址在网页上多次显示,但只在image.gif
之前直接显示一次。 URL的始终不同的部分由.*\
表示,以匹配任何内容。
有人可以制作一个有效的例子吗?谢谢!
答案 0 :(得分:1)
我认为你非常接近,但是你忘了一些技术性的东西,比如在正则表达式周围使用分隔符(下面的例子中的“|”)和使用引用(下面的$ 1和$ 2)。如果以下代码无效,请发布您要匹配的文字示例。
$result = preg_replace('|http://www.mysite.com/script.php\?([^"]*)&variable=1([^<]*)<img src="http://www.mysite.com/images/image.gif"|', 'http://www.mysite.com/script.php?$1$2<img src="http://www.mysite.com/images/image.gif"', $result );