2012-01-19 9 views
2

$end = preg_replace($pattern, $replacement, $str);PHP動的にpreg_replaceは

は、どのように私は$ strの中の各試合で異なる置換文字列$の交換を行うことができますか?たとえば、一致する各文字列を関連するイメージに置き換えたいとします。コールバックについて...何か?

答えて

3

はい、コールバックのあるものです。特にpreg_replace_callbackは、繰り返し呼び出しを冗長にします。交換するもののリストについて:

コールバックは、ルックアップや変換のいくつかのフォームを行うことができます
$src = preg_replace_callback('/(thing1|thing2|thing3)/', 'cb_vars', $src); 

function cb_vars($m) { 
    return strtoupper($m[1]); 
} 

は同様に、あなたは、通常のpreg_replaceとそのインラインと/e修飾を行うことができます。

+0

はい!素晴らしい、私はPHPのドキュメントを読んで問題を抱えていた。それを綴ってくれてありがとう... – emc

3

preg_replace_callbackまたは/e修飾子をパターン文字列に使用する必要があります。最初の方が強力ですが、比較的シンプルな方の後にいる方が便利です。