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

发布于 2024-10-27 14:08:14 字数 613 浏览 1 评论 0原文

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

有人可以提供一个工作示例吗?谢谢!

I have a script that pulls in some HTML to my webpage in the form of a table. I would like to replace part of a URL contained within the HTML using PHP preg_replace. The URL contains some text which is always different. The URL is not unique in the webpage, but the one I want to replace ONLY appears before a specific image.

My (non working, laughable and probably completely wrong) attempt so far is as follows:

$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 );

The above example attempts to remove &variable=1 from a single URL on the page. The URL appears many times on the page, but only once directly before image.gif. The part of the URL that is always different is represented by .*\ to match anything.

Can anybody produce a working example? Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

情丝乱 2024-11-03 14:08:14

我认为您已经非常接近了,但是您忘记了一些技术问题,例如在正则表达式周围使用分隔符(下面示例中的“|”)和使用引用(下面的 $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 );

I think you're pretty close but you forgot a few technical things like using delimiters around the regex (the '|' in the example below) and using references ($1 and $2 below). If the code below doesn't work please post an example of the text you're trying to match.

 $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 );
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文