php 慣用驗(yàn)證類及正則_PHP教程
Jul 13, 2016 am 10:27 AM? php 常用驗(yàn)證類及正則
正則表達(dá)式在遇到新的時候?qū)粩喔?/p>
include "ValidateParameterConfig.php";
class Validation
{
private static function getRexp($rexp)
{
$_rexp = array (
'letter_number'=>'/^[0-9A-Za-z]+$/',//只有字母數(shù)字包括大小寫
'account'=>'/^[0-9A-Za-z_]+$/',//只有字母數(shù)字下劃線包括大小寫
'ids'=>'/^[0-9]+(\,[0-9]+)*$/',//驗(yàn)證多個id以','分割的類型 例如'1,2,3,4,5'
'number'=>'/^[0-9]+$/',//只可以使數(shù)字
'personal_card'=>'/^[0-9A-Za-z]+$/',//身份證
'email'=>'/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/',//郵箱
'date'=>'/^((((19|20)\d{2})-(0?(1|[3-9])|1[012])-(0?[1-9]|[12]\d|30))|(((19|20)\d{2})-(0?[13578]|1[02])-31)|(((19|20)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|((((19|20)([13579][26]|[2468][048]|0[48]))|(2000))-0?2-29))$/'//日期,包含了閏年
);
if (isset($_rexp[$rexp])) {
return $_rexp[$rexp];
} else {
return $rexp_not_defind;
}
}
public static function validate($data, $config)
{
$_config = ValidateParameterConfig::getConfig($config);
$k = self::allowExist($data, $_config);
if ($k !== null) {
return $k;
}
foreach($_config as $k=>$c) {
if (isset($data[$k]))
{
if(isset($c['rexp']))
{
if (self::vRexp( $data[$k], $c['rexp']) === false) {
return $k;
}
}
if (isset($c['length']))
{
if (self::vLength($data[$k], $c['length']))
{
return $k;
}
}
if (isset($c['min_length']))
{
if (!self::vMinLength($data[$k], $c['min_length']))
{
return $k;
}
}
if (isset($c['max_length']))
{
if (!self::vMaxLength($data[$k], $c['max_length']))
{
return $k;
}
}
}
}
return null;
}
private static function allowExist($data, $config)
{
foreach ($config as $k=>$v)
{
if (!isset($v['allow_exist']) || $v['allow_exist'] == true) {
if (!isset($data[$k]))
{
return $k;
}
}
}
return null;
}
public static function vRexp($data, $rexp) {
$_rexp = self::getRexp($rexp);
if (preg_match($_rexp, $data) == false) {
return false;
}
return true;
}
public static function vLength($data, $l) {
if (strlen(trim($data)) == $l) {
return false;
}
return true;
}
public static function vMinLength($data, $l) {
if (strlen(trim($data))
return false;
}
return true;
}
public static function vMaxLength($data, $l) {
if (strlen(trim($data)) > $l) {
return false;
}
return true;
}
public static function vLetterNumber($data) {
if (preg_match(self::getRexp('letter_number'), $data) == false) {
return false;
}
return true;
}
public static function vLetterNumber_($data) {
if (preg_match(self::getRexp('letter_number_'), $data) == false) {
return false;
}
return true;
}
public static function vNumber($data) {
if (preg_match(self::getRexp('number'), $data) == false) {
return false;
}
return true;
}
public static function vEmail($data) {
if (preg_match(self::getRexp('email'), $data) == false) {
return false;
}
return true;
}
class ValidateParameterConfig
{
public static function getConfig ($key)
{
//'allow_exist'=>true或allow_exist不存在表示該參數(shù)必傳
$_config = array(
'test'=>array(
'letter_number'=>array('rexp'=>'letter_number', 'allow_exist'=>true),
'number'=>array('rexp'=>'number', 'min_length'=>1'allow_exist'=>false),
'account'=>array('rexp'=>'account', 'max_length'=>20),
)
);
if (isset($_config[$key])) {
return $_config[$key];
} else {
return $config_not_defind;
}
}
}
使用例子:
從應(yīng)用端發(fā)過來的參數(shù)為
$arr = array('letter_number'=>'abc123', 'account'=>'acb1234_');
//參數(shù)驗(yàn)證
$_msg = Validation::validate($arr, 'test');
if ($_msg !== null) {
return $_msg . ' is invalid parameter';
}

? AI ??

Undress AI Tool
??? ???? ??

Undresser.AI Undress
???? ?? ??? ??? ?? AI ?? ?

AI Clothes Remover
???? ?? ???? ??? AI ?????.

Clothoff.io
AI ? ???

Video Face Swap
??? ??? AI ?? ?? ??? ???? ?? ???? ??? ?? ????!

?? ??

??? ??

???++7.3.1
???? ?? ?? ?? ???

SublimeText3 ??? ??
??? ??, ???? ?? ????.

???? 13.0.1 ???
??? PHP ?? ?? ??

???? CS6
??? ? ?? ??

SublimeText3 Mac ??
? ??? ?? ?? ?????(SublimeText3)

??? ?? ??? ??? ?? JavaScript? MediareCorder API? ?? PHP ???? ???? ?????. 2. PHP? ???? ?? ??? ???? STTAPI (? : Google ?? Baidu ?? ??)? ???? ???? ?????. 3. PHP? ???? AI ??? (? : OpenAigpt)? ????. 4. ?? ?? PHP? TTSAPI (? : Baidu ?? Google ?? ??)? ???? ??? ?? ??? ?????. 5. PHP? ?? ??? ??? ??? ??? ?? ?? ??? ?????. ?? ????? PHP? ?? ???? ?? ?? ?? ??? ??? ?????.

PHP?? ?? ?? ??? ???? ?? ??? ? ???? ?? ??? ???? ?? ??? ???? ???? ????. 1. ?? ?? ??? ?? ??? URL ? ?? ??? ????. 2. UrlenCode? ???? ?? ??? ???????. 3. ? ???? ????? ?? ?? ??? ? ?? ??? ?????. 4. ???? ???? ?? ? ? ??? ??? ??? ??? ?????. 5. ??? ?? ??? ????? ?? ????? OG ??? ???? ?????. 6. XSS ??? ???? ?? ??? ??? ?????. ? ???? ??? ??? ???? ??? ?? ?? ??? ??? ???? ??? ?? ??? ?????.

AI? ??? ??? ?? ?? ? ?? ???? ????? ?? ??? ??????. 1. Baidu, Tencent API ?? ?? ?? NLP ?????? ?? ??? AI ?? ?? API? ??????. 2. PHP? ? ?? guzzle? ?? API? ???? ?? ??? ??????. 3. ?? ????? ?? ?? ??? ???? ???? ???? ??? ??? ? ????. 4. ?? ?? ? ?? ???? ?? PHP-L ? PHP_CODESNIFFER? ??????. 5. ???? ????? ???? ?? ?? ??? ?????? ??? ??????. AIAPI? ??? ? ???, ?? ??, ?? ? PHP ?? ??? ??? ???. ?? ???? PSR ??? ???, ??? ????? ????, ?? ??? ???, ????? ??? ????, X? ???????.

1. ?? ???? ??? ??? ?????? ?? ?? ??? ??, ??? ?? ???? ??? (? : ?? ???, ? ? ??), ?? ??? ?? ???? ???? ? ?? ?? ??? ??? ?? ??? ????????. 2. ?? ??? ??? ?? ? ??? ???? ?? ?? ?? ???? ?? ? ?? AUDIT ?? ??? ??? ? ????? ????? ??? ???????. 3. ?? ?? ??? ?? ??? ???????. Recaptchav3 ???? ??, ??? ?? ?? ?? ?? ??, IP ? ?? ??? ??? ??? ?? ???? ??? ?? ??? ????? ??? ???? ????? ??? ?????.

PHP? AI ??? ??? ?? ????? ??? API? ?? ?????. ??? ??? ????? ? ??? ???? ?????. API ??? ?? ?? ??? ???? ??? ??? ???? ???? ? ????. 2. ?? ?? ???? guzzle ?? curl? ???? HTTP ??? ???, JSON ??? ??? ? ???, API ? ?? ??, ??? ? ?? ??? ???? ??, ??? ?? ?? ? ? ?? ????, ??? ?? ? ?????? ?????. 3. ???? ???? ?? ???? API ??, ?? ? ??? ?? ??, ??? ?? ??, ?? ?? ? ??? ??? ??? ?????. ?? ??? ??? ??? ? ??? ???? Propt ?? ? ?? ?? ??, ??? ?? ? ?? ????, ?? ?? ?? ???? ? ??? ?? ? ???? ????? ?????.

PHP? ?????? ????? ?? ?? ?? ???? ???? ?? ???? ???? ?? ?? ???? ?????. 2. ?? ??? ???? ???? ?? ??? ?? ? ??? ??? ???? ?? API/Webhook ??? ??? ?? ???? ??? ??? ??? ??? ?????. 3. ?? ????? ?? ??, ??/???? ????, ???? ??, ???? ? ??? ?????? ????? ?? ??? ???? ???? ?? Dingtalk, SMS ?? ??? ???? ??? ?????? ???? ?? ? ??? ??? ????? ?? ??? ???? ???????.

PhpisstillRelevantinmodernenterpriseenvironments.1. Modernphp (7.xand8.x)? ??? ??, ??? ??, jitcompilation ? modernsyntax, mateitsuilableforlarge-scalepplications

MAC ?? ???? ? ??? ?? ??? ????? ?? ? ??? ????? ????. 1. ???? ???? ???? ???? ??? ?? ? ?? ????? ??? ???? ??????. 2. ????? ?? ?? ? ??? ???? ???? ?? ?? ????? ??? ???? ?????. 3. ??? ?? ??? ???? ?? ???? ?? ???? ?? ???? ?? ? ? ????. 4. ??? ????? ????? ? ?? ?? ? ??? ?? ? ??? ??????.
