我有一个regex模式,它即将运行,但我仍然缺少一些东西。我只想交换<script>
标签的src
:的时间戳
所以我想要这个:
stuff BEFORE...<script src='/assets/mySite-1238459846.js'></script>
stuff AFTER...
是这样的:
stuff BEFORE...<script src='/assets/mySite-0123456789.js'></script>
stuff AFTER...
以下是切换时间戳的代码,但仅当使用src
时,它不包含任何特殊字符或斜杠,这意味着只有$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);
尝试
$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...