2011-04-25 121 views
0

如何使用值 「返回」 通過這樣的preg_replace:的preg_replace(PHP函數)

preg_replace($pattern, function('$1','$2'), $contents);

所以它會通過匹配而不是$ 1和$ 2作爲字符串('$ 1','$ 2');

回答

2

如果function('$1','$2')確實是一個函數調用,那麼你不能這樣做。它會在執行preg_replace之前調用。在這種情況下,你可以使用preg_replace_callback

function foo($matches) { 
    // $matches[1] is $1 
    // $matches[2] is $2 
} 

preg_replace_callback($pattern, 'foo', $contents); 

如果它不是一個函數調用,你必須更好地解釋你想做的事。

1
$pattern = '/blabla/e'; //make sure to use the 'e' modifier 
$result = preg_replace($pattern, "function('\\1', '\\2')", $contents); 
+0

附註:不要使用電子修飾詞,除非你絕對必須。 – Halcyon 2011-04-25 09:37:10