$str="sdfsd士大1夫'';;;--==3'[]]f2";
各种字符里面包含了数字通过PHP处理返回 132
其他全部忽略好像很难哦!!!
程序怎么写我现在想到的是substr...但是也不是很懂

解决方案 »

  1.   

    pre
    $str="sdfsd士大1夫'';;;--==3'[]]f2";
    preg_match_all('/\d/S',$str, $matches);
    echo implode('',$matches[0]);
    /*
    132
    */
      

  2.   

    用循环也可以
    for($i=0;$i<strlen($str);$i++)
    if($str[$i]>=0&&$str[$i]<=9)
    $new_str.=$str[$i];
    echo $new_str;
      

  3.   

    Notice: Undefined variable: new_str in E:\Newsite\3.php on line 6
    为什么会这样的?
      

  4.   

    2楼的语句有些问题,不考虑编码的情况下,循环可以用如下代码来实现:<?
    $str="sdfsd士大1夫'';;;--==3'[]]f2";
    for($i=0;$i<strlen($str);$i++)
    if($str[$i]>='0' && $str[$i]<='9')
    {
    $new_str.=$str[$i];
    }
    echo $new_str;
    ?>这段代码直接运行就可以输出:132
      

  5.   

    Notice: Undefined variable: new_str in E:\Newsite\3.php on line 6在最开始 $new_str='';
      

  6.   

    出现这个错误是因为$new_str没有定义引起的!对代码少做修改即可!<?php
    $str="sdfsd士大1夫'';;;--==3'[]]f2";
    $new_str ='';
    for($i=0;$i<strlen($str);$i++)
    if($str[$i]>='0' && $str[$i]<='9')
    {
        $new_str.=$str[$i];
    }
    echo $new_str;
    ?>
      

  7.   

    代码如下即可:
    $str="sdfsd士大1夫'';;;--==3'[]]f2";
    preg_match_all('/[0-9]/', $str, $arr);
    echo join('',$arr[0]);