服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

PHP自定义函数获取URL中一级域名的方法

2019-06-20 15:37onestopweb PHP教程

这篇文章主要介绍了PHP自定义函数获取URL中一级域名的方法,涉及字符串与数组相关操作技巧,需要的朋友可以参考下

本文实例讲述了PHP自定义函数获取URL中一级域名的方法。分享给大家供大家参考,具体如下:

<?php
/*
 * Created on 2016-8-23
 */
function regular_domain($domain)
{
  if (substr ( $domain, 0, 7 ) == 'http://') {
    $domain = substr ( $domain, 7 );
  }
  if (strpos ( $domain, '/' ) !== false) {
    $domain = substr ( $domain, 0, strpos ( $domain, '/' ) );
  }
  return strtolower ( $domain );
}
function top_domain($domain) {
  $domain = regular_domain ( $domain );
  $iana_root = array (
      'ac',
      'ad',
      'ae',
      'aero',
      'af',
      'ag',
      'ai',
      'al',
      'am',
      'an',
      'ao',
      'aq',
      'ar',
      'arpa',
      'as',
      'asia',
      'at',
      'au',
      'aw',
      'ax',
      'az',
      'ba',
      'bb',
      'bd',
      'be',
      'bf',
      'bg',
      'bh',
      'bi',
      'biz',
      'bj',
      'bl',
      'bm',
      'bn',
      'bo',
      'bq',
      'br',
      'bs',
      'bt',
      'bv',
      'bw',
      'by',
      'bz',
      'ca',
      'cat',
      'cc',
      'cd',
      'cf',
      'cg',
      'ch',
      'ci',
      'ck',
      'cl',
      'cm',
      'cn',
      'co',
      'com',
      'coop',
      'cr',
      'cu',
      'cv',
      'cw',
      'cx',
      'cy',
      'cz',
      'de',
      'dj',
      'dk',
      'dm',
      'do',
      'dz',
      'ec',
      'edu',
      'ee',
      'eg',
      'eh',
      'er',
      'es',
      'et',
      'eu',
      'fi',
      'fj',
      'fk',
      'fm',
      'fo',
      'fr',
      'ga',
      'gb',
      'gd',
      'ge',
      'gf',
      'gg',
      'gh',
      'gi',
      'gl',
      'gm',
      'gn',
      'gov',
      'gp',
      'gq',
      'gr',
      'gs',
      'gt',
      'gu',
      'gw',
      'gy',
      'hk',
      'hm',
      'hn',
      'hr',
      'ht',
      'hu',
      'id',
      'ie',
      'il',
      'im',
      'in',
      'info',
      'int',
      'io',
      'iq',
      'ir',
      'is',
      'it',
      'je',
      'jm',
      'jo',
      'jobs',
      'jp',
      'ke',
      'kg',
      'kh',
      'ki',
      'km',
      'kn',
      'kp',
      'kr',
      'kw',
      'ky',
      'kz',
      'la',
      'lb',
      'lc',
      'li',
      'lk',
      'lr',
      'ls',
      'lt',
      'lu',
      'lv',
      'ly',
      'ma',
      'mc',
      'md',
      'me',
      'mf',
      'mg',
      'mh',
      'mil',
      'mk',
      'ml',
      'mm',
      'mn',
      'mo',
      'mobi',
      'mp',
      'mq',
      'mr',
      'ms',
      'mt',
      'mu',
      'museum',
      'mv',
      'mw',
      'mx',
      'my',
      'mz',
      'na',
      'name',
      'nc',
      'ne',
      'net',
      'nf',
      'ng',
      'ni',
      'nl',
      'no',
      'np',
      'nr',
      'nu',
      'nz',
      'om',
      'org',
      'pa',
      'pe',
      'pf',
      'pg',
      'ph',
      'pk',
      'pl',
      'pm',
      'pn',
      'pr',
      'pro',
      'ps',
      'pt',
      'pw',
      'py',
      'qa',
      're',
      'ro',
      'rs',
      'ru',
      'rw',
      'sa',
      'sb',
      'sc',
      'sd',
      'se',
      'sg',
      'sh',
      'si',
      'sj',
      'sk',
      'sl',
      'sm',
      'sn',
      'so',
      'sr',
      'ss',
      'st',
      'su',
      'sv',
      'sx',
      'sy',
      'sz',
      'tc',
      'td',
      'tel',
      'tf',
      'tg',
      'th',
      'tj',
      'tk',
      'tl',
      'tm',
      'tn',
      'to',
      'tp',
      'tr',
      'travel',
      'tt',
      'tv',
      'tw',
      'tz',
      'ua',
      'ug',
      'uk',
      'um',
      'us',
      'uy',
      'uz',
      'va',
      'vc',
      've',
      'vg',
      'vi',
      'vn',
      'vu',
      'wf',
      'ws',
      'xxx',
      'ye',
      'yt',
      'za',
      'zm',
      'zw'
  );
  $sub_domain = explode ( '.', $domain );
  $top_domain = '';
  $top_domain_count = 0;
  for($i = count ( $sub_domain ) - 1; $i >= 0; $i --) {
    if ($i == 0) {
      // just in case of something like NAME.COM
      break;
    }
    if (in_array ( $sub_domain [$i], $iana_root )) {
      $top_domain_count ++;
      $top_domain = '.' . $sub_domain [$i] . $top_domain;
      if ($top_domain_count >= 2) {
        break;
      }
    }
  }
  $top_domain = $sub_domain [count ( $sub_domain ) - $top_domain_count - 1] . $top_domain;
  return $top_domain;
}
echo top_domain("http://www.zzvips.com/");
?>

希望本文所述对大家PHP程序设计有所帮助。

延伸 · 阅读

精彩推荐
  • PHP教程PHP获取ttf格式文件字体名的方法示例

    PHP获取ttf格式文件字体名的方法示例

    这篇文章主要介绍了PHP获取ttf格式文件字体名的方法,结合实例形式分析了php读取ttf字体文件属性的相关操作技巧,需要的朋友可以参考下...

    老虎会游泳3312019-06-05
  • PHP教程实例讲解PHP表单处理

    实例讲解PHP表单处理

    在本篇内容中小编给大家分享了关于PHP表单处理的相关实例以及知识点内容,有需要的朋友们跟着学习下。...

    laozhang4042019-06-13
  • PHP教程PHP 7.4.0 首个版本 alpha 1 发布

    PHP 7.4.0 首个版本 alpha 1 发布

    PHP 团队今天 宣布推出 PHP 7.4.0 首个版本 PHP 7.4.0 Alpha 1。 7.4 新特性包括: 预加载 FFI 类属性的类型支持 NULL 合并赋值运算符 弃用 WDDX 扩展 简化匿名函数 新增 mb_str_split 函数 始终可用的 Hash 扩展 有关新功能和其他变更的更多信息,...

    开源中国4182019-06-15
  • PHP教程Ajax+Jpgraph实现的动态折线图功能示例

    Ajax+Jpgraph实现的动态折线图功能示例

    这篇文章主要介绍了Ajax+Jpgraph实现的动态折线图功能,结合实例形式分析了ajax结合jpgraph.php类库绘制动态折线图的相关操作技巧,需要的朋友可以参考下...

    chengqiuming1912019-06-18
  • PHP教程PHP 数组和字符串互相转换实现方法

    PHP 数组和字符串互相转换实现方法

    PHP 中由于数组和字符串这两种变量类型是如此常用,以至于 PHP 具有两个函数,可以在字符串和数组之间互相进行转换...

    脚本之家1872019-05-28
  • PHP教程PHP+Ajax简单get验证操作示例

    PHP+Ajax简单get验证操作示例

    这篇文章主要介绍了PHP+Ajax简单get验证操作,涉及php结合ajax无刷新提交验证相关操作技巧,需要的朋友可以参考下...

    致Great3822019-06-06
  • PHP教程CI(CodeIgniter)框架中URL特殊字符处理与SQL注入隐患分析

    CI(CodeIgniter)框架中URL特殊字符处理与SQL注入隐患分析

    这篇文章主要介绍了CI(CodeIgniter)框架中URL特殊字符处理与SQL注入隐患,结合实例形式分析了CodeIgniter框架中针对特殊字符的过滤及SQL注入隐患的相关原理,需要的朋友可以参考下...

    流风,飘然的风4082019-06-09
  • PHP教程PHP实现会员账号单唯一登录的方法分析

    PHP实现会员账号单唯一登录的方法分析

    这篇文章主要介绍了PHP实现会员账号单唯一登录的方法,结合实例形式分析了php基于session与文件读写的单一用户登陆限制实现技巧,需要的朋友可以参考下...

    JasonHome1452019-06-04