preg_replace_callbackに配列は無理っぽ

2月 23rd, 2010 by admin Leave a reply »

preg_replaceと同じ理屈でpreg_replace_callbackを配列指定できると信じ込んで凄くハマったのでメモメモ。

複数の正規表現を一気にかける場合、配列で指定しちゃうと楽チン。

$preg = array(
  '/正規表現/si' => '$1:$2',
  '/正規表現/si' => '$1=$2'
);
$message = preg_replace(array_keys($preg), array_values($preg), $message);

上と同じ理屈でpreg_replace_callbackも配列が可能と信じ込んでいた。
ダメダメな例

$preg = array(
  '/正規表現/si' => 'callback1',
  '/正規表現/si' => 'callback2'
);
$message = preg_replace_callback(array_keys($preg), array_values($preg), $message);
function callback1($matches){
  return $matches[1].':'.$matches[2];
}
function callback2($matches)
{
  return $matches[1].'='.$matches[2];
}

どうやらこれはダメっぽい。。。

Advertisement

コメントを残す