$str ='http://www.abc.com/news_id=79';
$url = parse_url($str);
preg_match('/([a-zA-Z]+\.)?(.*?)\.com/',$url['host'],$match);
echo $match[2]

解决方案 »

  1.   

    php中有现成的函数 parse_url
      

  2.   

    谢谢foolbirdflyfirst(湖水清澈) ,,这也写.com,.com.cn都好用,但如果是.org或.edu。就不好用了
      

  3.   

    preg_match('/([a-zA-Z]+\.)?(.*?)\.(com|org|edu)/',$url['host'],$match);
      

  4.   

    $url="http://abc.com/aaa/bbb/news_id=79";
    $ht=parse_url($url);
    $host=$ht['host'];
    $position=strpos($host,'b');
    $str=substr($host,$position-1,3);
    echo'$str';我想这样差不多了吧
      

  5.   

    字符串不是特别长,其实最好不用正则.调用正则解析器会影响一定的效率.
    用parse_url函数把url拆解开,然后去取,这样效率会高很多.
      

  6.   

    $website='www.abc.com';
    $a=explode('.','$websit');
    把字符用'.'分开不知道可以不!!
      

  7.   

    用Request.ServerVariables("SERVER_NAME") 得到 域名 然后再要
    倒数第一个点前的 
      

  8.   

    字符串不是特别长,其实最好不用正则.调用正则解析器会影响一定的效率.
    用parse_url函数把url拆解开,然后去取,这样效率会高很多.-----
    感觉这个函数parse_url也是用正则的方法拆解的。