[大阪/横滨/德岛] 寻找基础设施/服务器端工程师!

[大阪/横滨/德岛] 寻找基础设施/服务器端工程师!

【超过500家企业部署】AWS搭建、运维、监控服务

【超过500家企业部署】AWS搭建、运维、监控服务

【CentOS的后继者】AlmaLinux OS服务器搭建/迁移服务

【CentOS的后继者】AlmaLinux OS服务器搭建/迁移服务

[仅适用于 WordPress] 云服务器“Web Speed”

[仅适用于 WordPress] 云服务器“Web Speed”

[便宜]网站安全自动诊断“快速扫描仪”

[便宜]网站安全自动诊断“快速扫描仪”

[预约系统开发] EDISONE定制开发服务

[预约系统开发] EDISONE定制开发服务

[注册100个URL 0日元] 网站监控服务“Appmill”

[注册100个URL 0日元] 网站监控服务“Appmill”

【兼容200多个国家】全球eSIM“超越SIM”

【兼容200多个国家】全球eSIM“超越SIM”

[如果您在中国旅行、出差或驻扎]中国SIM服务“Choco SIM”

[如果您在中国旅行、出差或驻扎]中国SIM服务“Choco SIM”

【全球专属服务】Beyond北美及中国MSP

【全球专属服务】Beyond北美及中国MSP

[YouTube]超越官方频道“美由丸频道”

[YouTube]超越官方频道“美由丸频道”

FuelPHP标准验证规则汇总

你好。
我是Mandai,负责Wild 开发团队。
这次,我想包含尽可能多的文档中没有的信息,例如您对 FuelPHP 标准验证规则的了解以及意想不到的使用它们的方法。
FuelPHP的版本已确认为1.7.2。

 

必需的

规则名称 争论
必需的 没有任何

required 是对必需项的检查,如果检查不为“false”、“null”、“空字符串”或“没有元素的空数组”,则可以通过。
请注意,除了必需的验证规则之外,可以使用空字符串传递。

 

必需_with

规则名称 争论
必需_with $字段名

仅当名为 $fieldname 的字段中的数据通过所需规则时,才会应用所需规则。
是否类似于如果选中复选框则验证文本框的内容?

 

匹配值

规则名称 争论
匹配值 $比较,$严格=假

比较$compare中的数据是否相同。
$compare 比较字符串和数字,包括使用“===”的类型。
另外,如果 $strict 为 false,将执行使用“==”的比较,忽略类型。

如果 $compare 是一个数组,它会扫描该数组并按顺序使用“===”比较类型。
如果相同则验证通过。
如果 $strict 为 false,将执行使用“==”的比较,忽略类型。

 

匹配模式

规则名称 争论
匹配模式 $模式

使用 preg_match 函数使用正则表达式执行模式匹配。
尝试使用Fuelphp的fieldset快速、优雅、疯狂地批量生成输入表单| Beyond Co., Ltd.也有一个示例,所以也请查看一下。

 

匹配字段

规则名称 争论
匹配字段 $字段

与 $field 指定的字段进行比较,包括类型检查。
无法为此规则指定严格,因此仅传递“===”和空字符串。

 

匹配集合

规则名称 争论
匹配集合 $collection = array(), $strict = false

如果$collection是一个数组,则使用in_array函数将其与数组中的值进行比较。
如果 $strict 为 true,则 in_array 函数的第三个参数设置为 true,并执行包括类型检查在内的严格比较。

如果 $collection 不是数组,则给定的所有参数都将设置为数组,并使用 in_array 函数执行比较。
例如,如果使用数据“1, true, 2, 'test3'”作为参数,即使从表单中输入1,也不会通过,因为$strict设置为true(POST发送的数字是字符)(用于列处理)。
事实上,test3 是唯一可以通过此验证的字符串。

另外,如果您使用数据“1, 'true', 2, 'test3'”作为参数,$strict 将显示为设置为 true,但由于它不是布尔值,因此将在没有类型的情况下执行比较马苏。
因此,验证POST发送的数据时,“true”和“test3”都可以通过。

规范不明确且难以理解,并且match_value 规则,因此向 $collection 输入数组以外的数据很可能会导致意外的陷阱。

 

最小长度

规则名称 争论
最小长度 $长度

如果字符串大小大于或等于$length,则可以传递。
如果大小为 0(= 空字符串),也可以传递,因此设置 $length = 1 将不会验证必需的项目。

 

最大长度

规则名称 争论
最大长度 $长度

如果字符串大小小于或等于$length,则可以通过。

 

精确长度

规则名称 争论
精确长度 $长度

如果字符串大小为$length,则可以通过。
即使大小为 0(= 空字符串)也可以传递,因此它通常可以与 required 结合使用。

 

有效日期

规则名称 争论
有效日期 $format = null,$strict = true

根据日期和时间格式验证给定字符串是否为数据。
不言而喻,可以传递空字符串,但除非您只看文档,否则您可能没有意识到不需要显式指定 $format。
如果将格式设置为 $format,则 date_parse_from_format 函数将根据 $format 进行解析。
如果 $format 为 null,则会使用 date_parse 函数进行解析,因此无需设置固定格式(尽管有可能会错误地传递可解析为日期的数据)。

将 $format 设置为 null 的好处是您可以创建一条允许“Ymd”和“Y/m/d”都通过的规则。

 

有效的电子邮件

规则名称 争论
有效的电子邮件 没有任何

使用filter_var 函数验证该字符串作为电子邮件地址是否有效。
使用 filter_var 函数验证电子邮件地址比使用 preg_match 函数传递您自己的正则表达式安全得多。

 

有效的电子邮件

规则名称 争论
有效的电子邮件 $分隔符(可选)

使用$separator中设置的字符串通过explode分解输入数据后,在循环中验证valid_email规则。

请注意,$separator 的默认值为“,”。

 

有效网址

规则名称 争论
有效网址 没有任何

使用filter_var函数验证字符串作为URL是否有效。
filter_var 函数的一个缺陷是包含多字节字符的 URL 无法传递,即使它们是真实的 URL。

 

有效IP

规则名称 争论
有效IP 没有任何

使用filter_var 函数验证该字符串作为IP 地址是否有效。
无论 IPv4 还是 IPv6 都可以进行验证。

 

数值最小值

规则名称 争论
数值最小值 $min_val

验证输入值是否大于或等于 $min_val 作为数字。
在内部,输入值和 $min_val 被转换为 float 并进行比较,因此十进制数也可以进行比较。

 

最大数值

规则名称 争论
最大数值 $max_val

验证输入值是否小于或等于 $max_val 作为数字。
在内部,输入值和 $max_val 被转换为 float 并进行比较,因此小数也可以进行比较。

 

数字之间

规则名称 争论
数字之间 $min_val, $max_val

验证输入值是否大于或等于 $min_val 且小于或等于 $max_val 作为数字。
这是同时验证 numeric_min 规则和 numeric_max 规则的内容。

 

有效字符串

规则名称 争论
有效字符串 $flags = array('alpha', 'utf8')

只需选择一个规则即可组装通用正则表达式并执行验证。
您可以使用
match_pattern $flags 中存储的数组可以采用的字符串如下。

旗帜 目标人物
阿尔法 大写 小写 字母表
数字 数字0-9
特价商品 字母表(与 [:alpha:] 匹配的字符串模式)
空间 半角空格
新线路 \r\n
选项卡 \t
标点 .  ,  !  ?  :  ;  &
单引号 '
双引号 "
破折号 _ -
正斜杠 /
反斜杠 \
括号 [ ]
大括号 ( )
UTF8 { }

内部处理结合这些规则来构造正则表达式。
数组中需要指定几个东西,但是如果输入数据的格式确定了,有一个隐藏函数会根据数据格式自动设置规则。

对于 URL,只需 ``$flags = 'url_safe''' 将设置三个标志:'alpha'、'numeric' 和 'dashes'。
像这样的规则(一组规则?)实际上作为隐藏功能存在。

规则集名称 待定规则
阿尔法 阿尔法、utf8
字母数字 字母、utf8、数字
特价商品 特价,utf8
网址安全 字母、数字、破折号
整数、数字 数字
漂浮 数字、点
引号 单引号、双引号
斜线 正斜杠、反斜杠
全部 alpha、utf8、数字、特殊字符、空格、换行符、制表符、标点符号、单引号、双引号、破折号、正斜杠、反斜杠、方括号、大括号

我无法忍受“全部”的绝望(什么时候应该使用它?)。

 
就是这样。

如果您觉得这篇文章有帮助,请点赞!
1
加载中...
1 票,平均:1.00 / 11
6,464
X Facebook 哈特纳书签 口袋
[2025.6.30 Amazon Linux 2 支持结束] Amazon Linux 服务器迁移解决方案

[2025.6.30 Amazon Linux 2 支持结束] Amazon Linux 服务器迁移解决方案

[大阪/横滨] 积极招募基础设施工程师和服务器端工程师!

[大阪/横滨] 积极招募基础设施工程师和服务器端工程师!

写这篇文章的人

关于作者

万代洋一

我的主要工作是为社交游戏开发 Web API,但我也很幸运能够做很多其他工作,包括营销。
此外,我在 Beyond 中的肖像权被视为 CC0。