$arr=explode(".","211.157.102.25");echo $arr[0].".".$arr[1];

解决方案 »

  1.   

    如果不用正则表达式可以用这个办法解决.
    <?
    $ip="211.157.102.25";
    $position=strrpos($ip, '.');
    $n_ip=substr($ip,0,$position);
    //此时已经可已得到前三段,如果要得到前两段,那就再截取一次吧!$n_position=strrpos($n_ip,'.');
    $get=substr($n_ip,0,$n_position);
    ?>
      

  2.   

    goodname(CSDN新版论坛总版主):
    不能一次解决吗???
    我要取出前两个ip段来用作封杀功能。
    用正则表达式替代下面的功能:$ip="211.157.102.25";
    $deny = array("211.157","202.118");
    $position=strrpos($ip, '.');
    $n_ip=substr($ip,0,$position);
    if(in_array($n_ip, $deny))
       header("location:error.html");
    ustb(偶然):
    谢谢,这个我知道。
    我想用正则表达式解决,好像能省事点~:p
      

  3.   

    try like this
    <script>       
    s="211.157.102.25";
    r=/\d{1,3}\.\d{1,3}/g
    alert(s.match(r)[0])
    </script>
      

  4.   

    55555555555555楼上的那段怎么用php写呢?:(
      

  5.   

    <?php
    $ip="211.157.102.25"; // 用户的ip$deny = array("211.157","202.118"); // 待封杀的ip或段for($i=0;$i<count($deny);$i++) {
      $deny[$i] = "/^$deny[$i].*/"; // 构造正则表达式
      $replarr[$i] = "kill"; // 构造替换串
    }
    $ip = preg_replace($deny,$replarr,$ip);if($ip == "kill")
       header("location:error.html");
    ?>