2

必要なパターンが存在する場合は、文字列を配列内のパターンに置き換える必要があります。

$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;
}
4

1 に答える 1

4

preg_replaceパターンと置換のための配列引数を取ります。

preg_replace(array_keys($patters), array_values($patterns), $string);
于 2013-03-31T15:19:29.693 に答える