PHP输入一个url匹配得到域名各分组部分 PHP正则

作者:enenba | 发表于:2012-01-15 13:27 | 分类:php源码

     在PHP的官网上看到的parse_url()函数的替代。结果和parse_url()函数差不多,是使用正则实现的,看到好就转过来。

原文:http://www.php.net/parse_url#104958

 

我就不翻译了,它可以解析URI

URI 是 Web上可用的每种资源 - HTML文档、图像、视频片段、程序等 - 由一个通用资源标志符(Uniform Resource Identifier, 简称"URI")进行定位。

对就分组:

      ^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?
       12            3  4          5       6  7        8 9


PHP 测试:

 

<?php
$search = '~^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?~i';
$url = 'http://www.enenba.com/pub/ietf/uri/#Related';
$url = trim($url);
preg_match_all($search, $url ,$rr);
printf("<p>输出URL数据为:</p><pre>%s</pre>\n",var_export( $rr ,TRUE));

/*
各分组如下
      $1 = http:
      $2 = http
      $3 = //www.enenba.com
      $4 = www.enenba.com
      $5 = /pub/ietf/uri/
      $6 = <undefined>
      $7 = <undefined>
      $8 = #Related
      $9 = Related
*/
?>

 

 

end

附件下载/演示源码:
URI.htm12.67KB

上一篇: php如何将相对路径转换为绝对路径   |   下一篇:正文提取算法初解——网站内容特征» 标签: PHP正则

评论: