代潇瑞博客

php正则/e的用法示例

| 点击次数:9915

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

【相关推荐】

触屏版 | 电脑版

Copyright © 2013 代潇瑞博客手机版

QQ: 446673330

粤ICP备13071969号-1