我有以下代码: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。