php自定义函数,检测变量值是否符合要求

这是一个包含3个文件的PHP代码示例,用于检测变量值是否符合特定要求,如中文、英文、数字、混合字符、日期、单选、多选及身份证号等。代码已添加注释,20201113更新增加了默认值判断。
摘要由CSDN通过智能技术生成

一共3个文件,放置于同个文件夹,utf-8编码,复制后可直接使用。能添加的注释都写上去了。

可用于判断中文、英文、数字、混合(不限制中文、英文、数字)、日期、单选、多选、身份证号。

default.php——调用示例

test_variable.php——定义主函数

sentence_lengthtype.php——用于主函数中重复引用的字段长度限制类型部分代码

 

技术所限,难免错误;如有错误,请通知一下我。

20201113更新:zh、en、num、mix四种类型增加默认值判断

 

以下为default.php

(数据均符合规则,输出结果为NULL;如需返回错误信息,可修改规则让数据“错误”;test_variable.php中有错误规则示例)

<?php require 'test_variable.php'; ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=" http://www.w3.org/1999/xhtml">
<head>
	<title>自定义字段检测函数</title>
    <meta charset="UTF-8">
    <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport"/>
    <meta content="yes" name="apple-mobile-web-app-capable"/>
    <meta content="black" name="apple-mobile-web-app-status-bar-style"/>
    <meta content="telephone=no" name="format-detection"/>
    <meta content="email=no" name="format-detection"/>
    <meta content="initial-scale=1.0,user-scalable=no,maximum-scale=1" media="(device-height: 568px)" name="viewport"/>
<style>
</style>
</head>

<body>

<?php

$temp_str = array
(
	//array([中文名称],[变量值],[必填/可选填],[变量值类型],[变量值长度限制类型],[变量值长度],[默认值:是否匹配单选/多选选项值])
    array("姓名","张三",1,"zh",-1,5)
    ,array("英文名","hello",1,"en",-1,5)
    ,array("班级","201804",1,"num",-1,6)
    ,array("地址","航银路25号",1,"mix",-1,6)
    ,array("日期","2020/10/30 11:30",1,"date","","Y/m/d H:i")
    ,array("性别","男,女",1,"radio","","","男")
    ,array("学习科目","语文,数学,英语",1,"checkbox","","","语文")
    ,array("身份证号","45020320000406079X",0,"idnum")
);

echo "<div>--------</div>";
echo "<pre>";
var_dump($temp_str);
echo "</pre>";
echo "<div>--------</div>";
echo "<pre>";
var_dump(test_variable($temp_str));
echo "</pre>";
echo "<div>--------</div>";

?>

</body>
</html>

 

以下为test_variable.php

<?php
/*
标准格式
[0]str_cn:中文名称
[1]str_value:值
[2]str_required:1-必填,0-可选填
[3]str_type:类型。zh-中文,en-英文,num-数字,mix-混合(不限制中文、英文、数字),date-日期,radio-单选,checkbox-多选,idnum-身份证号
[4]str_lengthtype:字段长度限制类型。0-等于,1-大于等于,2-大于,-1小于等于,-2小于
str_lengthtype缺少“无限制”的判断,嫌麻烦;如果有需要,可以设置为小于100位之类的
[5]str_length:字段长度。填入数字,如5,配合str_lengthtype。
[6]str_match:默认值时,是否能匹配选项

$temp_str = array
(
	//array([中文名称],[变量值],[必填/可选填],[变量值类型],[变量值长度限制类型],[变量值长度],[默认值:是否匹配单选/多选选项值])
    array("姓名","张三",1,"zh",-1,5)
    ,array("英文名","hello",1,"en",-1,5)
    ,array("班级","201804",1,"num",-1,6)
    ,array("地址","航银路25号",1,"mix",-1,6)
    ,array("日期","2020/10/30 11:30",1,"date","","Y/m/d H:i")
    ,array("性别","男,女",1,"radio","","","女")
    ,array("学习科目","语文,数学,英语",1,"checkbox","","","语文")
    ,array("身份证号","45020320000406079X",0,"idnum")
);

*/

/*
感谢CSDN:渡目成书,下雨的声音丶,tottyandbaty
*/

/*
20201112更新:zh、en、num、mix四种类型增加默认值判断
20201113更新:构造array时,逗号前置,方便操作
*/

function test_variable($str_multiple) {

	//以;分割,判断是否多组参数需要检测
	for($i_multiple=0;$i_multiple<count($str_multiple);$i_multiple++){
		//赋值单组参数
		$str_single=$str_multiple[$i_multiple];

		//判断输入参数格式格式是否正确
		//[0]为空
		if (preg_match("/^[\\s]*$/",$str_single[0])) {
			$return_value="页面第".($i_multiple+1)."参数中str_single[0]不能为空";
		}
		/*
		//[1]为空
		elseif (preg_match("/^[\\s]*$/",$str_single[1])) {
			$return_value="第".($i_multiple+1)."参数中str_single[1]不能为空";
		}
		*/
		//[2]为空
		elseif (preg_match("/^[
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值