发新话题
打印

判断是否为有效的网址

判断是否为有效的网址

今天在做有效网址的判断,怎么也弄不好,百度也没找到合适的,于是去PHPchina,找到这篇文章,觉得很好,推荐一下
蚂蚁懒人
偶给你添一下

TOP

[Copy to clipboard]
PHP CODE:

<?php
//【警告】:未经许可请勿随便修改 
// 【文件名】: c_check.inc 
// 【作 用】: 通用检测函数集 
// 【作 者】: 天灰 
// 【最后修改日期】: 2001/05/11[cxx] 
// 【变量定义规则】:‘C_’=字符型,‘I_’=整型,‘N_’=数字型,‘L_’=布尔型,‘A_’=数组型 

//----------------------------------------------------------------------------------- 
------- 
// ※CheckMoney($C_Money) 检查数据是否是99999.99格式 
// ※CheckEmailAddr($C_mailaddr) 判断是否为有效邮件地址 
// ※CheckWebAddr($C_weburl) 判断是否为有效网址 
// ※CheckEmpty($C_char) 判断字符串是否为空 
// ※CheckLengthBetween($C_char, $I_len1, $I_len2=100) 判断是否为指定长度内字符串 
// ※CheckUser($C_user) 判断是否为合法用户名 
// ※CheckPassword($C_passwd) 判断是否为合法用户密码 
// ※CheckTelephone($C_telephone) 判断是否为合法电话号码 
// ※CheckValueBetween($N_var, $N_val1, $N_val2) 判断是否是某一范围内的合法值 
// ※CheckPost($C_post) 判断是否为合法邮编(固定长度) 
// ※CheckExtendName($C_filename,$A_extend) 判断上传文件的扩展名 
// ※CheckImageSize($ImageFileName,$LimitSize) 检验上传图片的大小 
// ※AlertExit($C_alert,$I_goback=0) 非法操作警告并退出 
// ※Alert($C_alert,$I_goback=0) 非法操作警告 
// ※ReplaceSpacialChar($C_char) 特殊字符替换函数 
// ※ExchangeMoney($N_money) 资金转换函数 
// ※WindowLocation($C_url,$C_get="",$C_getOther="") PHP中的window.location函数 


// 函数名:CheckMoney($C_Money) 
// 作 用:检查数据是否是99999.99格式 
// 参 数:$C_Money(待检测的数字) 
// 返回值:布尔值 
// 备 注:无 


function CheckMoney($C_Money

if (!
ereg("^[0-9][.][0-9]$"$C_Money)) return false
return 
true


// 函数名:CheckEmailAddr($C_mailaddr) 
// 作 用:判断是否为有效邮件地址 
// 参 数:$C_mailaddr(待检测的邮件地址) 
// 返回值:布尔值 
// 备 注:无 

function CheckEmailAddr($C_mailaddr

if (!
eregi("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*$"
$C_mailaddr)) 
//(!ereg("^[_a-zA-Z0-9-]+(.[_a-zA-Z0-9-]+)*@[_a-zA-Z0-9-]+(.[_a-zA-Z0-9-]+)*$", 
$c_mailaddr)) 

return 
false

return 
true



// 函数名:CheckWebAddr($C_weburl) 
// 作 用:判断是否为有效网址 
// 参 数:$C_weburl(待检测的网址) 
// 返回值:布尔值 
// 备 注:无 

function CheckWebAddr($C_weburl

if (!
ereg("^http://[_a-zA-Z0-9-]+(.[_a-zA-Z0-9-]+)*$"$C_weburl)) 

return 
false

return 
true



// 函数名:CheckEmpty($C_char) 
// 作 用:判断字符串是否为空 
// 参 数:$C_char(待检测的字符串) 
// 返回值:布尔值 
// 备 注:无 

function CheckEmptyString($C_char

if (!
is_string($C_char)) return false//是否是字符串类型 
if (empty($C_char)) return false//是否已设定 
if ($C_char=='') return false//是否为空 
return true




// 函数名:CheckLengthBetween($C_char, $I_len1, $I_len2=100) 
// 作 用:判断是否为指定长度内字符串 
// 参 数:$C_char(待检测的字符串) 
// $I_len1 (目标字符串长度的下限) 
// $I_len2 (目标字符串长度的上限) 
// 返回值:布尔值 
// 备 注:无 

function CheckLengthBetween($C_cahr$I_len1$I_len2=100

$C_cahr trim($C_cahr); 
if (
strlen($C_cahr) < $I_len1) return false
if (
strlen($C_cahr) > $I_len2) return false
return 
true



// 函数名:CheckUser($C_user) 
// 作 用:判断是否为合法用户名 
// 参 数:$C_user(待检测的用户名) 
// 返回值:布尔值 
// 备 注:无 

function CheckUser($C_user

if (!
CheckLengthBetween($C_user420)) return false//宽度检验 
if (!ereg("^[_a-zA-Z0-9]*$"$C_user)) return false//特殊字符检验 
return true



// 函数名:CheckPassword($C_passwd) 
// 作 用:判断是否为合法用户密码 
// 参 数:$C_passwd(待检测的密码) 
// 返回值:布尔值 
// 备 注:无 

function CheckPassword($C_passwd

if (!
CheckLengthBetween($C_passwd420)) return false//宽度检测 
if (!ereg("^[_a-zA-Z0-9]*$"$C_passwd)) return false//特殊字符检测 
return true



// 函数名:CheckTelephone($C_telephone) 
// 作 用:判断是否为合法电话号码 
// 参 数:$C_telephone(待检测的电话号码) 
// 返回值:布尔值 
// 备 注:无 

function CheckTelephone($C_telephone

if (!
ereg("^[+]?[0-9]+([xX-][0-9]+)*$"$C_telephone)) return false
return 
true



// 函数名:CheckValueBetween($N_var, $N_val1, $N_val2) 
// 作 用:判断是否是某一范围内的合法值 
// 参 数:$N_var 待检测的值 
// $N_var1 待检测值的上限 
// $N_var2 待检测值的下限 
// 返回值:布尔值 
// 备 注:无 

function CheckValueBetween($N_var$N_val1$N_val2

if (
$N_var $N_var1 ││ $N_var $N_var2

return 
false

return 
true




// 函数名:CheckPost($C_post) 
// 作 用:判断是否为合法邮编(固定长度) 
// 参 数:$C_post(待check的邮政编码) 
// 返回值:布尔值 
// 备 注:无 

function CheckPost($C_post

$C_post=trim($C_post); 
if (
strlen($C_post) == 6

if(!
ereg("^[+]?[_0-9]*$",$C_post)) 

return 
true;; 
}else 

return 
false

}else 

return 
false;; 





// 函数名:CheckExtendName($C_filename,$A_extend) 
// 作 用:上传文件的扩展名判断 
// 参 数:$C_filename 上传的文件名 
// $A_extend 要求的扩展名 
// 返回值:布尔值 
// 备 注:无 

function CheckExtendName($C_filename,$A_extend

if(
strlen(trim($C_filename)) < 5

return 
0//返回0表示没上传图片 

$lastdot strrpos($C_filename"."); //取出.最后出现的位置 
$extended substr($C_filename$lastdot+1); //取出扩展名 
for($i=0;$i<COUNT($A_EXTEND);$I++) 

if (
trim(strtolower($extended)) == trim(strtolower($A_extend[$i]))) //转换大 
小写并检测 

$flag=1//加成功标志 
$i=count($A_extend); //检测到了便停止检测 


if(
$flag<>1

for(
$j=0;$j<COUNT($A_EXTEND);$J++) 

$alarm .= $A_extend[$j]." "

AlertExit('只能上传'.$alarm.'文件!而你上传的是'.$extended.'类型的文件'); 
return -
1//返回-1表示上传图片的类型不符 

return 
1//返回1表示图片的类型符合要求 



// 函数名:CheckImageSize($ImageFileName,$LimitSize) 
// 作 用:检验上传图片的大小 
// 参 数:$ImageFileName 上传的图片名 
// $LimitSize 要求的尺寸 
// 返回值:布尔值 
// 备 注:无 

function CheckImageSize($ImageFileName,$LimitSize

$size=GetImageSize($ImageFileName); 
if (
$size[0]>$LimitSize[0││ $size[1]>$LimitSize[1]) 

AlertExit('图片尺寸过大'); 
return 
false

return 
true




// 函数名:Alert($C_alert,$I_goback=0) 
// 作 用:非法操作警告 
// 参 数:$C_alert(提示的错误信息) 
// $I_goback(返回到那一页) 
// 返回值:字符串 
// 备 注:无 

function Alert($C_alert,$I_goback=0

if(
$I_goback<>0

echo 
""

else 

echo 
""





// 函数名:AlertExit($C_alert,$I_goback=0) 
// 作 用:非法操作警告 
// 参 数:$C_alert(提示的错误信息) 
// $I_goback(返回到那一页) 
// 返回值:字符串 
// 备 注:无 
function AlertExit($C_alert,$I_goback=0

if(
$I_goback<>0

echo 
""
exit; 

else 

echo 
""
exit; 





// 函数名:ReplaceSpacialChar($C_char) 
// 作 用:特殊字符替换函数 
// 参 数:$C_char(待替换的字符串) 
// 返回值:字符串 
// 备 注:无 

function ReplaceSpecialChar($C_char

$C_char=HTMLSpecialChars($C_char); //将特殊字元转成 HTML 格式。 
$C_char=nl2br($C_char); //将回车替换为

$C_char=str_replace(" "," ",$C_char); //替换空格替换为 
$C_char=str_replace("<? ","< ?",$C_char); //替换PHP标记 
return $C_char



// 函数名:ExchangeMoney($N_money) 
// 作 用:资金转换函数 
// 参 数:$N_money(待转换的金额数字) 
// 返回值:字符串 
// 备 注:本函数示例:$char=ExchangeMoney(5645132.3155) ==> 
$char='¥5,645,132.31' 

function ExchangeMoney($N_money

$A_tmp=explode(".",$N_money ); //将数字按小数点分成两部分,并存入数组$A_tmp 
$I_len=strlen($A_tmp[0]); //测出小数点前面位数的宽度 
if($I_len%3==0

$I_step=$I_len/3//如前面位数的宽度mod 3 = 0 ,可按,分成$I_step 
部分 
}else 

$step=($len-$len%3)/3+1//如前面位数的宽度mod 3 != 0 ,可按,分成$I_step 
部分+

$C_cur=""
//对小数点以前的金额数字进行转换 
while($I_len<>0

$I_step--; 
if(
$I_step==0

$C_cur .= substr($A_tmp[0],0,$I_len-($I_step)*3); 
}else 

$C_cur .= substr($A_tmp[0],0,$I_len-($I_step)*3).","

$A_tmp[0]=substr($A_tmp[0],$I_len-($I_step)*3); 
$I_len=strlen($A_tmp[0]); 

//对小数点后面的金额的进行转换 
if($A_tmp[1]==""

$C_cur .= ".00"
}else 

$I_len=strlen($A_tmp[1]); 
if(
$I_len<2

$C_cur .= ".".$A_tmp[1]."0"
}else 

$C_cur .= ".".substr($A_tmp[1],0,2); 


//加上人民币符号并传出 
$C_cur="¥".$C_cur
return 
$C_cur




// 函数名:WindowLocation($C_url,$C_get="",$C_getOther="") 
// 作 用:PHP中的window.location函数 
// 参 数:$C_url 转向窗口的URL 
// $C_get GET方法参数 
// $C_getOther GET方法的其他参数 
// 返回值: 字符串 
// 备 注:无 

function WindowLocation($C_url,$C_get="",$C_getOther=""

if(
$C_get == "" && $C_getOther == ""
if(
$C_get == "" && $C_getOther <> ""){$C_target=""window.location='$C_url? 
$C_getOther='
+this.value"";} 
if(
$C_get <> "" && $C_getOther == ""){$C_target=""window.location='$C_url? 
$C_get'""
;} 
if(
$C_get <> "" && $C_getOther <> ""){$C_target=""window.location='$C_url? 
$C_get&$C_getOther='
+this.value"";} 
return 
$C_target

?> 

交流QQ群2:16142493
智能手机软件下载
PHP新手不可错过一帖
PHP新手如何获得积分
论坛需要你,我们大家需要你!

TOP

好东东,不能错过

值的学习,用一些,不错啊!!!!1

TOP

正则表达示    哈哈`  了解了解

TOP

<?php
$url = 'http://www.example.com';

print_r(get_headers($url, 1));
?>

也可以拿来检验URL是否有效,不能仅仅只能判断域名是否为已注册~~因为有些该死的DNS商把无效的注册域名拿来指向自己的广告了~555

TOP

发新话题