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 に答える