$p1 = '/<(content)>(.*?)<\/\\1>/ise';
$r1 = '"<$1>".htmlspecialchars("$2", ENT_NOQUOTES)."</$1>"';这两个表达式,怎么会给我把数字过滤了,如果要他不过滤数字,该怎么写。

解决方案 »

  1.   

    上面的正则表达式是把<content>的内容转成html实体(htmlspecialchars),过滤数字?
      

  2.   

    数字被莫名其妙的给过滤了。。贴一下数字被过滤掉的例子比如 本来的文航是:今天钓了300条鱼然后输出的是:今天钓了条鱼数字全部没有了。。你试试会过滤掉吗
    <?php
    header('Content-Type: text/html; charset=utf-8');
    $p1 = '/<(content)>(.*?)<\/\\1>/ise';
    $r1 = '"<$1>".htmlspecialchars("$2", ENT_NOQUOTES)."</$1>"';
    $str = "<content>今天钓了300条鱼</content>";echo preg_replace($p1,$r1,$str);
    ?>
      

  3.   

    数字被莫名其妙的给过滤了。。贴一下数字被过滤掉的例子比如 本来的文航是:今天钓了300条鱼然后输出的是:今天钓了条鱼数字全部没有了。。你试试会过滤掉吗
    <?php
    header('Content-Type: text/html; charset=utf-8');
    $p1 = '/<(content)>(.*?)<\/\\1>/ise';
    $r1 = '"<$1>".htmlspecialchars("$2", ENT_NOQUOTES)."</$1>"';
    $str = "<content>今天钓了300条鱼</content>";echo preg_replace($p1,$r1,$str);
    ?>
    好像不会,我在找找其他原因