当达到某个索引时,有没有办法打破preg_replace_callback
的搜索?
例如:
$content = preg_replace_callback('/'.preg_quote($_POST['query'],'#').'/i', function($matches) use($replacements,&$index) {
if ( $index > count($replacements) ) {
// I tried break; but doesn't work
}
if ( $replacements[$index] != '' ) {
$matches[0] = $replacements[$index];
}
$index++;
return $matches[0];
}, $content);
答案 0 :(得分:1)
你可以使用elseif忽略第二个if
$content = preg_replace_callback('/'.preg_quote($_POST['query'],'#').'/i', function($matches) use($replacements,&$index) {
if ( $index > count($replacements) ) {
// I tried break; but doesn't work
} elseif ( $replacements[$index] != '' ) {
$matches[0] = $replacements[$index];
}
$index++;
return $matches[0];
}, $content);
编辑
preg_replace_callback ( mixed pattern, callback callback, mixed subject [, int limit [, int &count]] )
限 每个主题字符串中每个模式的最大可能替换。默认为-1(无限制)。
计数 如果指定,则此变量将填充已完成的替换次数。