PHP str_replace每次都有不同的值?
我想为HTML字符串做一个str_replace,每次找到一个匹配项的值都会增加。PHP str_replace每次都有不同的值?
$link = 1;
$html = str_replace($this->link, $link, $html);
这将取代所有在一次,并用相同的字符串$联系,我会在每次发现一个匹配时喜欢$链接增加。可能吗?
非常感谢
如果我理解你正确(您想每场比赛日益增长的整数代替),这似乎对这个问题的意见,鼓励您使用preg_replace_callback
是正确的:
$str = 'Hello World';
$cnt = 0;
function myCallback ($matches) {
global $cnt;
return ++$cnt;
}
// He12o Wor3d
echo preg_replace_callback('/\l/', 'myCallback', $str);
这个myCallback,如果它在一个类中呢? echo preg_replace_callback('/ \ l /',$ this-> myCallback,$ str);不工作 – Bruce 2012-04-29 06:15:01
'preg_replace_callback('/ \ l /',array($ this,'myCallback'),$ text);' – Sampson 2012-04-29 06:19:41
preg_replace_callback('/ \ l /','self :: myCallback',$ text) ;这也适用 – Bruce 2012-04-29 23:17:40
您可以使用正则表达式返回有多少替代品呢。
<?php
$string = "red green green blue red";
preg_replace('/\b(green)\b/i', '[removed]', $string, -1 , $results);
echo $results; // returns '2' as it replaces green twice with [removed]
?>
使用http:/ /php.net/manual/en/function.preg-replace-callback.php并在您的回调函数中增加计数器。 – 2012-04-29 05:05:44
同意丹。然后简单地计算找到了多少匹配。 – Philip 2012-04-29 05:08:24