首页 > 网络编程 > php > 正文

php解析url的host和domain
2014-04-29 22:23:31   来源:   评论:0 点击:

小试一下: *** 或的url的host* 2013年4月26日20:33:25* 2013年5月9日20:28:05* function yundanran_parse_host($url){if(!is_string($url) ¦¦ $url==& 39;& 39;)return "";$info=parse_ur

小试一下:


  1. /**
  2. * 或的url的host
  3. * 2013年4月26日20:33:25
  4. * 2013年5月9日20:28:05
  5. */
  6. function yundanran_parse_host($url)
  7. {
  8. if(!is_string($url) ¦¦ $url=='')return "";
  9.  
  10. $info=parse_url($url);
  11. $host=isset($info['host'])?$info['host']:"";
  12. if($host=="")return "";
  13.  
  14. if(preg_match("/^192\.168\.\d{1,3}\.\d{1,3}¦127\.\d{1,3}\.\d{1,3}\.\d{1,3}¦255\.\d{1,3}\.\d{1,3}\.\d{1,3}$/",$host))return "";
  15. if(!preg_match("/\.[a-z]+$/i",$host) && !preg_match("/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/",$host))return "";
  16. return $host;
  17. }
  18. /*
  19. * 获得url的domain
  20. * 2013年5月9日20:27:56
  21. */
  22. function yundanran_parse_domain($url)
  23. {
  24. $host=yundanran_parse_host($url);
  25. if($host==="")return "";
  26.  
  27. // 纯IP
  28. if(preg_match("/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/",$host))
  29. {
  30. preg_match("/^(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})$/",$host,$matches);
  31. if($matches)return $matches[1];
  32. }
  33. else
  34. {
  35. preg_match("/(.*?)([^\.]+\.[^\.]+)$/",$host,$matches);
  36. if($matches)return $matches[2];
  37.  
  38. }
  39. return "";
  40. }

http://demo.qianduanblog.com/path/to的host是demo.qianduanblog.com,而domain是qianduanblog.com。而不会解析192.168.XX.XX、127.XX.XX.XX、255.XX.XX.XX以及不含域名后缀的url。ip地址的url的host和domain是一样的,如:http://121.121.121.121/path/to解析后的host为121.121.121.121,其domain也是121.121.121.121

相关热词搜索:php解析url的host和domain

上一篇:浅谈 PHP 神盾的解密过程
下一篇:php版的jquery:simple_html_dom.php

分享到: 收藏