【问题标题】:Using PHP preg_replace to replace a value between two strings使用 PHP preg_replace 替换两个字符串之间的值
【发布时间】:2011-03-29 13:04:00
【问题描述】:

我有一个脚本,它以表格的形式将一些 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 中删除 &amp;variable=1。该 URL 在页面上出现了很多次,但在 image.gif 之前只有一次。 URL 中始终不同的部分由.*\ 表示以匹配任何内容。

任何人都可以提供一个有效的例子吗?谢谢!

【问题讨论】:

    标签: php preg-replace


    【解决方案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 );
    

    【讨论】:

      猜你喜欢
      • 2015-03-26
      • 1970-01-01
      • 1970-01-01
      • 2022-11-23
      • 1970-01-01
      • 2015-08-05
      • 2019-03-30
      • 2021-03-24
      • 2013-11-26
      相关资源
      最近更新 更多