PHP preg_replace_callback 有没有办法打破搜索?
PHP preg_replace_callback is there a way to break the search?
有没有办法在 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);
您可以只使用 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(无限制)。
计数
如果指定,此变量将填充完成的替换次数。
有没有办法在 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);
您可以只使用 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(无限制)。
计数 如果指定,此变量将填充完成的替换次数。