0

我认为自己相当聪明,但除了简单的正则表达式之外的任何东西我都害怕。

我试图找出一个 preg_replace 来替换所有图像链接并添加时间戳(通常的傻瓜缓存技巧)。所以我正在寻找的是一个正则表达式

blah blah blah <a href='blah>blah</a> blah <img src="http://blah.com/test.jpg" /> blah blah <a href="blah"><img src='/tester.jpg' /></a> blah blah

并使其成为

blah blah blah <a href='blah>blah</a> blah <img src="http://blah.com/test.jpg?timestamp=123" /> blah blah <a href="blah"><img src='/tester.jpg?timestamp=123' /></a> blah blah.

是否可以在单个 preg_replace 中完成?如果没有,关于最好的方法有什么建议吗?

4

2 回答 2

1

HTML解析并不是那么简单。但你可以尝试这样的事情:

$search = "/(\<img[^>]+src=)(['\"])([^'\"]+)['\"]/i";
$result = preg_replace($search, '\1\2\3?timestamp='.$ts.'\2', $input);
于 2013-02-09T23:16:38.127 回答
1

您可以通过 JQuery 函数运行您的页面:

var timestamp = '?timestamp=123';
$('img').each(function () {
  if ($(this).attr('src')) {
    $(this).attr('src', ($(this).attr('src') + timestamp));
  }
});

这是一个例子

于 2013-02-09T23:58:00.510 回答