繁体   English   中英

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

[英]Using PHP preg_replace to replace a value between two strings

我有一个脚本,该脚本以表格的形式将一些HTML提取到我的网页中。 我想使用PHP preg_replace替换HTML中包含的一部分URL。 该URL包含一些总是不同的文本。 该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 );

上面的示例尝试从页面上的单个URL中删除&variable=1 该URL在页面上显示多次,但在image.gif之前仅显示一次。 URL中始终不同的部分用.*\\表示,以匹配任何内容。

有人能提供一个可行的例子吗? 谢谢!

我认为您已经很接近了,但是您忘记了一些技术性的东西,例如在正则表达式周围使用定界符(在下面的示例中为“ |”),并使用引用(在下面为$ 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 );

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM