分类 PHP 下的文章
PHP 报错:idn_to_ascii(): INTL_IDNA_VARIANT_2003 is deprecated
由于项目的需要,需要对中文域名转码(将 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 判断是否为域名|判断是否为正确格式的域名
PHP 判断是否为域名|判断是否为正确格式的域名
!!!注意这代码判断的是域名,不是 URL!!!
因为项目有需求,首先想到去 Google 搜,翻了几页,未找到能满足自己需求的代码,所以自己动手造了个轮子
要想判断一个域名格式是否正确,得先知道域名是由哪些字符串组成的
Google 查阅了一些资料,得出一下要求
PS:在下述中,
“域名”
所指的是,如nowtime.cc
中的nowtime
- “域名” 只能由
大小写字母
、数字
和-
组成 - “域名” 不能以
-
开头或结尾 - “域名” 每段长度最小 1 位,最长 63 位(不包含
“域名后缀”
,以.
分段) - “域名总长度” 不能超过 255 位(不包含域名后缀;不包含
.
)
知道要求后,就可以开始造轮子了,然后就有了以下代码:(注意这代码判断的是域名,不是 URL)
PHP 获取真实用户 IP 地址
PHP 获取一段时间内的所有日期 / PHP 获取日期列表
爬取维基百科“历史上的今天”,需要一个从 1月1日 到 12月31日 日期表,故有以下代码
时间戳转换
推荐此小工具:https://nowtool.cn/unixtime