php的正则闭包500错误!快来看看啊!!

PHP求助!

function str_emoji($str){
  function empic($h){
    $p=dechex(str_replace(array('&#',';'),'',$h));
    return '<img src="'.$_POST['face'].$p.'.png" alt="'.$h.'" class="smiley" />';
  };
  $str=preg_replace('#(\&\#[0-9]{6}\;)#ie','empic("\\1")',$str);
  return $str;
};
$com_print=str_emoji('aaa&#128027;&#128013;bbb');

在我的网站中这段代码是报错的,我用的PHP版本是5.3.28
我在SAE中测试是没有问题的,版本是5.3 http://parktest.sinaapp.com/

阅读 3.6k
3 个回答

是不是死循环了????

function str_emoji($str,$cdn){
  function empic($h){
    $p=dechex(str_replace(array('&#',';'),'',$h));
    return '<img src="'.$cdn.$p.'.png" alt="'.$h.'" class="smiley" />';
  };
  $str=preg_replace('#(\&\#[0-9]{6}\;)#ie','empic("\\1")',$str);
  return $str;
};

$com_print=str_emoji('aaa&#128027;&#128013;bbb',$_POST['face']);

好吧,最后还是要我自己来写答案。

function pic_emoji($str,$cdn){
  return preg_replace_callback(
    '/\&\#[0-9]{6}\;/',
    function ($m) use ($cdn){
      $p=dechex(str_replace(array('&#',';'),'',$m[0]));
      return '<img src="'.$cdn.$p.'.png" alt="'.$m[0].'" class="smiley" />';
    },
    $str
  );
};
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题