<?php
function base($a)
{ return base64_encode($a).'|'.$a; }
$string = "#whj#";
$pattern = "/#(.*)#/i";
echo $b=preg_replace($pattern,base("\\1"), $string); //这里输出"XDE=|whj",可XDE=是"\1"的encode
echo base64_decode('XDE=');
?>
糊涂了!逆向引用传进函数$a是whj,可函数里编码的确是\1
@老虎会游泳 什么情况?
$tmp = base("\\1");
echo $b=preg_replace($pattern, $tmp, $string);
想使用回调函数必须用preg_replace_callback: