0

ほぼ機能する正規表現パターンがありますが、まだ何かが欠けています。<script>タグのタイムスタンプのみを交換したいsrc:

だから私はこれが欲しい:

stuff BEFORE...<script src='/assets/mySite-1238459846.js'></script>
stuff AFTER...

これになる:

stuff BEFORE...<script src='/assets/mySite-0123456789.js'></script>
stuff AFTER...

タイムスタンプを切り替えるコードは次のとおりですが、 withsrcに特殊文字やスラッシュが含まれていない場合のみ、$stringNotSpecial機能することを意味します。

$stringNotSpecial='mySite-1238459846.js'; //Works!
$stringSpecial='stuff BEFORE...<script src='/assets/mySite-0123456789.js'></script>
stuff AFTER...'; //DOESNT work :(
$timestamp='0123456789';
$pattern = '/mySite-[0-9]+.js/';
echo preg_replace($pattern, 'mySite-'.$timestamp.'.js', $stringNotSpecial);
echo '<br>';
echo echo preg_replace($pattern, 'mySite-'.$timestamp.'.js', $stringSpecial);
4

1 に答える 1

1

試す

$stringSpecial='stuff BEFORE...<script src=\'/assets/mySite-0123456789.js\'></script>stuff AFTER...';

また

$stringSpecial='stuff BEFORE...<script src="/assets/mySite-0123456789.js"></script>stuff AFTER...';

http://ideone.com/Vq8TSSの出力から-

result: Success     time: 0.01s    memory: 20520 kB     returned value: 0
input: no
output:

mySite-0123456789.js<br>stuff BEFORE...<script src='/assets/mySite-0123456789.js'></script>stuff AFTER...
于 2013-02-20T17:43:57.117 に答える