PHP输入一个url匹配得到一级域名部分

作者:enenba | 发表于:2012-01-02 11:51 | 分类:正则表达式

PHP输入一个url匹配得到一级域名部分,比如:

输入http://enenba.com/?post=15 得到enenba.com 不管输入的域名有多长,子目录有多少,都是得到一级域名(确切来说是主机部分

http://bbs.test.com/html/d/das.html  可以匹配得到bbs.test.com

有两种方法:

1、最简单的方法用parse_url()函数

array parse_url ( string url )
此函数返回一个关联数组,包含现有 URL 的各种组成部分。如果缺少了其中的某一个,则不会为这个组成部分创建数组项。组成部分为:

  • scheme - 如 http
  • host
  • port
  • user
  • pass
  • path
  • query - 在问号 ? 之后
  • fragment - 在散列符号 # 之后

以上手册的东东,贴例子吧:

 

<?php
$url = 'http://bbs.test.com/html/d/das.html ';
$rr = parse_url($url);
echo  $rr['host'];
?>


 输出:

       bbs.test.com

 

这个函数很方便,推荐使用

 

2、使用正则表达式(不推荐使用 )

<?php
$url = 'http://bbs.test.com/html/d/das.html ';
$rr = preg_replace("/(http|https|ftp|news):\/\//", "", $url); 
$rr = preg_replace("/\/.*/", "", $rr); 

echo $rr;
?>

 输出:

       bbs.test.com

 

上一篇: PHP得到一个域名的IP   |   下一篇:php采集CSS文件名» 标签: 正则匹配 php采集

评论: