Chuwen 发布的文章

由于项目的需要,需要对中文域名转码(将 Unicode 域名转换为 IDNA ASCII 兼容格式),Google 查到使用 idn_to_ascii 函数可对中文域名(Unicode 域名)转换为 IDNA ASCII 兼容格式

我在 PHP 7.2.1 下运行 echo idn_to_ascii('人民网.中国'); 出现了一下错误

[root@izwz9a76txemslg5q0e3zaz ~]# php -v
PHP 7.2.11 (cli) (built: Nov  2 2018 09:15:43) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologie

[root@izwz9a76txemslg5q0e3zaz ~]# php -r "echo idn_to_ascii('人民网.中国');"
PHP Deprecated:  idn_to_ascii(): INTL_IDNA_VARIANT_2003 is deprecated in Command line code on line 1

Deprecated: idn_to_ascii(): INTL_IDNA_VARIANT_2003 is deprecated in Command line code on line 1

- 阅读剩余部分 -

PHP 判断是否为域名|判断是否为正确格式的域名

!!!注意这代码判断的是域名,不是 URL!!!

因为项目有需求,首先想到去 Google 搜,翻了几页,未找到能满足自己需求的代码,所以自己动手造了个轮子

要想判断一个域名格式是否正确,得先知道域名是由哪些字符串组成的

Google 查阅了一些资料,得出一下要求

PS:在下述中,“域名” 所指的是,如 nowtime.cc 中的 nowtime

  1. “域名” 只能由 大小写字母数字- 组成
  2. “域名” 不能以 - 开头或结尾
  3. “域名” 每段长度最小 1 位,最长 63 位(不包含 “域名后缀”,以 . 分段)
  4. “域名总长度” 不能超过 255 位(不包含域名后缀;不包含 .

知道要求后,就可以开始造轮子了,然后就有了以下代码:(注意这代码判断的是域名,不是 URL)

- 阅读剩余部分 -