仅使用preg_replace()或组合preg_match()和preg_replace()?

时间:2013-03-16 11:03:05

标签: php regex performance preg-replace preg-match

如果需要模式存在,我需要用数组中的某些模式替换字符串:

$patterns = [
   'PATTERN#1' => 'REPLACE#1',
   'PATTERN#2' => 'REPLACE#2',
];

$string = 'SOME STRING TO PREG_REPLACE';

哪种方式会更快:

// PREG_REPLACE ONLY FOR MATCHED PATTERN:
foreach ($patterns as $pattern => $replace) {
    if (preg_match($string, $pattern)) {
        preg_replace($pattern, $replace, $string);
        break;
    }
}

// PREG_REPLACE FOR ALL PATTERNS:
foreach ($patterns as $pattern => $replace) {
    preg_replace($pattern, $replace, $string);
    break;
}

1 个答案:

答案 0 :(得分:4)

preg_replace获取模式和替换的数组参数。

preg_replace(array_keys($patters), array_values($patterns), $string);
相关问题