现在的位置: 首页 -> PHP学习 -> php正则/e的用法示例

php正则/e的用法示例

2017-07-09 00:24评论数 0 ⁄ 被浏览 714 views+

正则表达式中的/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代替。

 

文章出自:http://www.daixiaorui.com/read/252.html 本站所有文章,除注明出处外皆为原创,转载请注明本文地址,版权所有。

分享到:

目前有 0 条评论  @我要评论

    您的每一个评论都是对我的一份支持

     博客二维码

    昵称 *

    邮箱 *