验证链接的php代码,使用php代码与正则验证与匹配链接中域名的办法

在制作网站时,有时候需要对用户输入的内容进行处理,怎样单独使用正则验证输入的是否是网站还是链接还是其他呢?

$strrul = '需要验证的域名或网址';

$match1 = "/^((ht|f)tps?):\/\/([\w\-]+(\.[\w\-]+)*\/)*[\w\-]+(\.[\w\-]+)*\/?(\?([\w\-\.,@?^=%&:\/~\+#]*)+)?/";

$match2 = '/^([a-z0-9]+([a-z0-9-]*(?:[a-z0-9]+))?\.)?[a-z0-9]+([a-z0-9-]*(?:[a-z0-9]+))?(|\.org\.cn|\.org|\.net\.cn|\.gov\.cn|\.edu|\.com\.cn|\.com|\.co|\.cn|\.cc)$/i';

if(preg_match($match1, $strrul )){

echo "这是一个url链接";

}elseif(preg_match($match1, $strrul )){

echo "检测到内容为域名";

}else{

echo "其他内容";

}

?>

通过正则分别匹配链接与域名来判断指定的字符串内容的类型.

那么怎样在输入的链接中匹配出一级主域名呢?

$strurl = "需要处理的网址";

$match3 = "/[/w-]+/.(com|net|org|gov|cc|xyz|info|tv)(/.(cn))*/";//可|后缀添加新类型域名

preg_match( $match3, $strurl, $newstrarr );

if ( count( $newstrarr ) > 0 ) {

$urlname = $newstrarr[ 0 ];//如果输入内容为普通域名

} else {

$pararr = parse_url( $strurl );//parse_url函数获得url各个位置的值

$hosturl = $pararr[ "host" ];//获取域名

preg_match( $match3, $strurl, $newstrarr );

$arr = explode( ".", $hosturl );

$arrnum = count( $arr );

$arrwb = array( "com", "net", "org", "cn", "cc" );

if ( in_array( $arr[ $arrnum - 2 ], $arrwb ) ) {

$urlname = $arr[ $arrnum - 3 ] . "." . $arr[ $arrnum - 2 ] . "." . $arr[ $arrnum - 1 ];

} else {

$urlname = $arr[ $arrnum - 2 ] . "." . $arr[ $arrnum - 1 ];

}

}

echo $urlname;

?>

主要使用到php的parse_url函数,它可以将一个url链接分解为scheme、host、path、query等多个组件.

以上就是使用php代码简单的实现验证与匹配出域名的方法.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值