php – 如何在preg_replace中用c(xxx)替换c(xxx)?

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – 如何在preg_replace中用c(xxx)替换c(xxx)?脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
何在PReg_replace中用c(xxx)替换c(xxx)?

在下面的代码中,我想用functIoUn c(xxx)替换str c(xxx).
我没有得到我想要的正确结果.
我的代码出了什么问题?以及如何解决
    

$c['GOOD']='very good';
$c['BOY']='jimmy';
function c($x){
    global $c;
    if(isset($c[$x])){
        return $c[$x];
    }
}

$str="hello c(GOOD) world c(BOY) ";
$str=preg_replace("@c\(([A-Z_\d]+)\)@",c('$1'),$str);
echo $str;  // --> hello  world

// how to get hello very good world jimmy

解决方法

试试e修饰符 http://php.net/manual/en/reference.pcre.pattern.modifiers.php

<?PHP
  $str  = preg_replace( "/c\(([A-Z_\d]+)\)/e",'c("$1")',$str );
?>

更好地使用preg_replace_callback

<?PHP
  $str  = preg_replace_callback( "/c\(([A-Z_\d]+)\)/",function( $m ) {
    return c( $m[1] );
  },$str );
?>

脚本宝典总结

以上是脚本宝典为你收集整理的php – 如何在preg_replace中用c(xxx)替换c(xxx)?全部内容,希望文章能够帮你解决php – 如何在preg_replace中用c(xxx)替换c(xxx)?所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。