如果你有琴弦
'Old string Old more string Old some more string'
而你想得到'New1 string New2 more string New3 some more string'
你会怎么做?换句话说,您需要用变量字符串'New'。$ i替换所有'Old'实例。如何做呢?
最佳答案
不需要正则表达式的迭代解决方案:
$str = 'Old string Old more string Old some more string';
$old = 'Old';
$new = 'New';
$i = 1;
$tmpOldStrLength = strlen($old);
while (($offset = strpos($str, $old, $offset)) !== false) {
$str = substr_replace($str, $new . ($i++), $offset, $tmpOldStrLength);
}
$offset
中的strpos()
只是一些微优化。我不知道这是否值得(事实上,我什至不知道它是否会发生任何变化),但是其思想是我们不需要在已经处理过的子字符串中搜索$old
。参见Demo
Old string Old more string Old some more string
New1 string New2 more string New3 some more string
关于php - 用变量字符串替换所有子字符串实例,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6596574/