正则表达式中的/e模式的作用是将替换串中的内容当作代码来执行,/e模式是php语言才有的,除此之外还有/i(不区分大小写)等。
下面通过2个示例来演示php中正则/e模式的用法:
<?php header("content-type:text/html;charset=utf-8"); /* * 示例1 */ $subject = '<p>4+5=${4+5}</p>'; $str = preg_replace('/\$\{(.+)\}/e', '$1', $subject); echo $str.PHP_EOL; //运行结果为:<p>4+5=9</p>,因为'$1'中匹配出来的是'4+5'当做php表达式执行了。 /* * 示例2 * 保留n位小数 */ $precision = 2; $subject = '看完《php从入门到精通》需要33.123456小时'; $str = preg_replace('/([\d|\.]+)/e', 'round($1, '.$precision.')', $subject); echo $str; //运行结果为:看完《php从入门到精通》需要33.12小时。即:33.123456被替换为round(33.123456, $precision)。
注意:虽然/e模式看似强大,但是它会使代码看起来非常糟糕,而且高版本的php已经不再支持此模式。所以为了系统的长远发展,请不要用/e模式,可以用preg_replace_callback代替。
文章出自:https://www.daixiaorui.com/read/252.html 本站所有文章,除注明出处外皆为原创,转载请注明本文地址,版权所有。
蛋仔派对无限蛋币http://www.wzryzs.com/
666
666
很好的方法值得推荐
gg修改器https://www.guiyangtax.com/ 葫芦侠http://www.booj.net/ 八门神器http://www.tusovok.net/
gg修改器https://www.guiyangtax.com/ 葫芦侠http://www.booj.net/ 八门神器http://www.tusovok.net/