最近想过滤post或get提交的数据,想要过滤 类似/*xxx*/ 为空并包括 斜杠和星 。把其内容替换为空。

解决方案 »

  1.   

    写个递归,然后 str_replace 一下不就行了??或者你说的过滤内容不是这么简单。。举下特殊例子
      

  2.   

    $pattern = '/^(\/\*).*(\*\/)$/i';
    $data = '/* test */';
    $data = preg_replace($pattern, '\1\2', $data);
      

  3.   

    楼上的估计没去测试吧!~~一看就有问题!~~
    $pattern = '/^(\/\*).*(\*\/)$/i';   这个.难道不代表星号跟斜杠么?????
      

  4.   

    sorry,脑子烧坏了,搞错了。
    这个情况只能使用正则解决了。
      

  5.   


    $str = '111/* test1 */AAA/* test2 */BBB/* test3 */CCC/* test4 */111';
    echo preg_replace('/\/\*.*\*\//U', '', $str);
      

  6.   

    $s = '想要过滤 类似/*xxx*/ 为空并包括 斜杠和星 。把其内容替换为空。';
    echo preg_replace('#/\*.*\*/#isU', '', $s);想要过滤 类似 为空并包括 斜杠和星 。把其内容替换为空。
      

  7.   

    弱弱的问一句:# 代表什么意思? 还有isU
      

  8.   

    自定义的规则串分界符,众多的\看着不眼晕吗
    i 不区分大小写
    s 忽略换行
    U 非贪婪匹配对于 #10 的代码和结果,你都不看的吗?
      

  9.   


    <?php
    function replace($a)
    {
        if (is_array($a)) {
            foreach($a as $k => $v) {
                $a[$k] = replace($v);
            }
            return $a;
        } else {
            return preg_replace('#/\*((.*)|(?R))*\*/#is', '', $a);
        }
    }
    $_POST = array("preg_replace/*This is a PCRE function*/", 
                   "preg_replace/*This is a PCRE/*Do you know?/*Maybe you are right*/*/ function*/ function",
                   array("preg_replace/*This is a PCRE function*/"));
    $_POST = replace($_POST);
    print_r($_POST);
    ?>
      

  10.   


    +1$s = '数据';
    echo preg_replace('#/\*.*\*/#isU', '', $s);就别人说的这个代码,你拿去试试