使用PHP preg_replace替换两个字符串之间的值

时间:2011-03-29 13:04:00

标签: php preg-replace

我有一个脚本,以表格的形式将一些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的始终不同的部分由.*\表示,以匹配任何内容。

有人可以制作一个有效的例子吗?谢谢!

1 个答案:

答案 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 );