将已弃用的函数preg_replace转换为preg_replace_callback

时间:2014-05-03 14:35:22

标签: php callback

我有以下代码:http://pastebin.com/VaZkRxSu。我正在尝试使用preg_replace更新函数preg_replace_callback。我不明白在我的情况下callback会是什么。  A callback that will be called and passed an array of matched elements in the subject string. The callback should return the replacement string. This is the callback signature: string handler ( array $matches ) - 这就是它在php.net上所说的内容。 问题位于以下行:

第160行

$file_contents = preg_replace("!{$ldq}\*.*?\*{$rdq}!se","",$file_contents);

在这种情况下,preg_replace替换是一个空字段""。我试过将preg_replace更改为preg_replace_callback,但是我收到错误:(2) preg_replace_callback(): Requires argument 2, '', to be a valid callback

第163行

$file_contents = preg_replace('%(<\?(?!php|=|$))%i', '<?php echo \'\\1\'?>'."\n", $file_contents);

第168行

$file_contents = preg_replace("!{$ldq}\s*literal\s*{$rdq}(.*?){$ldq}\s*/literal\s*{$rdq}!s", stripslashes($ldq . "literal" . $rdq), $file_contents);

第173行

$file_contents = preg_replace("!{$ldq}\s*php\s*{$rdq}(.*?){$ldq}\s*/php\s*{$rdq}!s", stripslashes($ldq . "php" . $rdq), $file_contents);

第196行

$text[$i+1] = preg_replace('~^(\r\n|\r|\n)~', '', $text[$i+1]);

第208行

$compiled_text = preg_replace('!\?>\n?<\?php!', '', $compiled_text);

我还尝试添加一个函数($ m)作为回调,如here

请帮助我,我是一个菜鸟,并尽力学习PHP。

0 个答案:

没有答案