php替换字符串的前几个


php的str_replace是会把字符串里面的所有符合条件的都替换的,而preg_replace中有个参数是设定替换次数的 mixed preg_replace ( mixed pattern, mixed replacement, mixed subject [, int limit] )

下面定义了一个函数,实现php中替换字符串的前几个,可以实行替换指定的任意前几个符合条件的字符,这在标签的替换中经常用到.

php的str_replace是会把字符串里面的所有符合条件的都替换的,而preg_replace中有个参数是设定替换次数的

mixed preg_replace ( mixed pattern, mixed replacement, mixed subject [, int limit] )

function str_replace_limit($search, $replace, $subject, $limit=-1) {  
	if (is_array($search)) {
		foreach ($search as $k=>$v) {
			$search[$k] = '`' . preg_quote($search[$k],'`') . '`';
		}
		unset($k,$v);
	}else {
		$search = '`' . preg_quote($search,'`') . '`';
	} 
	// replacement    
	return preg_replace($search, $replace, $subject, $limit);
}

$a = '12121212121212121';
print str_replace_limit(1,'3',$a,3);