继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

Validator.php-10

潇潇雨雨
关注TA
已关注
手记 322
粉丝 25
获赞 130

/**

    * Validate the guessed extension of a file upload is in a set of file extensions.

    *

    * @param  string  $attribute

    * @param  mixed  $value

    * @param  array   $parameters

    * @return bool

    */

   protected function validateMimes($attribute, $value, $parameters)

   {

       if (! $this->isAValidFileInstance($value)) {

           return false;

       }// first this must be a file.

 

       return $value->getPath() != '' && in_array($value->guessExtension(), $parameters);

    // get path()

   }// this extension about file be guessed

 

   /**

    * Validate the MIME type of a file upload attribute is in a set of MIME types.

    *

    * @param  string  $attribute

    * @param  mixed  $value

    * @param  array  $parameters

    * @return bool

    */

   protected function validateMimetypes($attribute, $value, $parameters)

   {

       if (! $this->isAValidFileInstance($value)) {

           return false;

       }

 

       return $value->getPath() != '' && in_array($value->getMimeType(), $parameters);

   }//validate the MIME type of a file upload attribute is in a set of MIME types

 

   /**

    * Check that the given value is a valid file instance.

    *

    * @param  mixed  $value

    * @return bool

    */

   public function isAValidFileInstance($value)

   {

       if ($value instanceof UploadedFile && ! $value->isValid()) {

           return false;

       }// this value is a instanceof this Uploaded File

 

       return $value instanceof File;

   }//check that the given value is a valid file instance.

 

   /**

    * Validate that an attribute contains only alphabetic characters.

    *

    * @param  string  $attribute

    * @param  mixed   $value

    * @return bool

    */

   protected function validateAlpha($attribute, $value)

   {

       return is_string($value) && preg_match('/^[\pL\pM]+$/u', $value);

   }//get this value just abcd  means it is alphabetic

// just return this value,use preg_match

 

   /**

    * Validate that an attribute contains only alpha-numeric characters.

    *

    * @param  string  $attribute

    * @param  mixed   $value

    * @return bool

    */

   protected function validateAlphaNum($attribute, $value)

   {

       if (! is_string($value) && ! is_numeric($value)) {

           return false;

       }// this is_string

 

       return preg_match('/^[\pL\pM\pN]+$/u', $value);//change this preg match

   }// this must be alpha and numeric characters.

 

   /**

    * Validate that an attribute contains only alpha-numeric characters, dashes, and underscores.

    *

    * @param  string  $attribute

    * @param  mixed   $value

    * @return bool

    */

   protected function validateAlphaDash($attribute, $value)

   {

       if (! is_string($value) && ! is_numeric($value)) {

           return false;

       }

 

       return preg_match('/^[\pL\pM\pN_-]+$/u', $value);

   }// a validate way, alpha number dash and underscores

 

   /**

    * Validate that an attribute passes a regular expression check.

    *

    * @param  string  $attribute

    * @param  mixed   $value

    * @param  array   $parameters

    * @return bool

    */

   protected function validateRegex($attribute, $value, $parameters)

   {

       if (! is_string($value) && ! is_numeric($value)) {

           return false;

       }

 

       $this->requireParameterCount(1, $parameters, 'regex');

 

       return preg_match($parameters[0], $value);

   }// a user rule , this rule is a regex

 

   /**

    * Validate that an attribute is a valid date.

    *

    * @param  string  $attribute

    * @param  mixed   $value

    * @return bool

    */

   protected function validateDate($attribute, $value)

   {//Validate that an attribute is a valid date.

       if ($value instanceof DateTime) {

           return true;

       }// a instanceof DateTime

 

       if (strtotime($value) === false) {

           return false;

       }// a false

 

       $date = date_parse($value);// get date

 

       return checkdate($date['month'], $date['day'], $date['year']);

   }// check date

 

   /**

    * Validate that an attribute matches a date format.

    *

    * @param  string  $attribute

    * @param  mixed   $value

    * @param  array   $parameters

    * @return bool

    */

   protected function validateDateFormat($attribute, $value, $parameters)

   {

       $this->requireParameterCount(1, $parameters, 'date_format');//get count

 

       $parsed = date_parse_from_format($parameters[0], $value);//date_parse_from_format

 

       return $parsed['error_count'] === 0 && $parsed['warning_count'] === 0;//error_count

   }// validate that an attribute matches a date format

 

   /**

    * Validate the date is before a given date.

    *

    * @param  string  $attribute

    * @param  mixed   $value

    * @param  array   $parameters

    * @return bool

    */

   protected function validateBefore($attribute, $value, $parameters)

   {

       $this->requireParameterCount(1, $parameters, 'before');

 

       if ($format = $this->getDateFormat($attribute)) {

           return $this->validateBeforeWithFormat($format, $value, $parameters);

       }

 

       if (! ($date = strtotime($parameters[0]))) {

           return strtotime($value) < strtotime($this->getValue($parameters[0]));

       }//str to time

 

       return strtotime($value) < $date;

   }//validate before

 

   /**

    * Validate the date is before a given date with a given format.

    *

    * @param  string  $format

    * @param  mixed   $value

    * @param  array   $parameters

    * @return bool

    */

   protected function validateBeforeWithFormat($format, $value, $parameters)

   {

       $param = $this->getValue($parameters[0]) ?: $parameters[0];

 

       return $this->checkDateTimeOrder($format, $value, $param);

   }//validate before with format

 

   /**

    * Validate the date is after a given date.

    *

    * @param  string  $attribute

    * @param  mixed   $value

    * @param  array   $parameters

    * @return bool

    */

   protected function validateAfter($attribute, $value, $parameters)

   {

       $this->requireParameterCount(1, $parameters, 'after');

 

       if ($format = $this->getDateFormat($attribute)) {

           return $this->validateAfterWithFormat($format, $value, $parameters);

       }

 

       if (! ($date = strtotime($parameters[0]))) {

           return strtotime($value) > strtotime($this->getValue($parameters[0]));

       }

 

       return strtotime($value) > $date;

   }// validate after ,just a monitor model

 

   /**

    * Validate the date is after a given date with a given format.

    *

    * @param  string  $format

    * @param  mixed   $value

    * @param  array   $parameters

    * @return bool

    */

   protected function validateAfterWithFormat($format, $value, $parameters)

   {

       $param = $this->getValue($parameters[0]) ?: $parameters[0];// get the param

 

       return $this->checkDateTimeOrder($format, $param, $value);// get the check result

   }// validate the date is after a given date with a given format


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP