php怎么判断字符串是否url,PHP 正则匹配字符串URL地址与域名代码

匹配域名有以下的格式要求:

1、域名中的标号都由英文字母和数字组成,每一个标号不超过63个字符,也不区分大小写字母。标号中除连字符(-)外不能使用其他的标点符号。

2、各级域名之间用实点(.)连接,三级域名的长度不能超过20个字符。

3、由多个标号组成的完整域名总共不超过255个字符。

所以匹配域名的正则要

1、由英文数字 和 “_”组成    [-a-z0-9]

2、每级要以“.”连接

3、三级不能域名长度不超过20 {1,20}

测试如下格式:

代码如下

preg_match($search,$url)){

echo '匹配';

}else {

echo '不匹配';

}

?>

先从网上总结的几个常见的

正则1

b([a-z0-9]+(-[a-z0-9]+)*.)+[a-z]{2,}b

错误匹配:长度>60

正则2

代码如下

^(([^-][a-z0-9A-Z-_]+.)*)[^-][a-z0-9A-Z-_]+(.[a-zA-Z]{2,4}){1,2}$

错误匹配:长度>60

错误匹配:www.te_st.com

正则3

代码如下

(([wd-_]+.):?[^-_])+w{2,4}

不匹配:www.111com.net.cn

错误匹配:www.te_st.com

正则4

代码如下

[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+.?

暂无错误

正则5

代码如下

(?<=.)([a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?.)+[a-zA-Z]{2,6}

不匹配二级域名

正则6

代码如下

([a-z0-9][a-z0-9-]*?.(?:com|cn|net|org|gov|info|la|cc|co)(?:.(?:cn|jp))?)$

很多顶级域名不匹配

代码如下

输出URL数据为:%sn",var_export( $rr ,TRUE));

/*

各分组如下

$1 = http:

$2 = http

$3 = //www.111com.net

$4 = www.111com.net

$5 = /pub/ietf/uri/

$6 =

$7 = $8 = #Gonn

$9 = Gonn

*/

?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值