HTML_QuickForm
[ class tree: HTML_QuickForm ] [ index: HTML_QuickForm ] [ all elements ]

Source for file Email.php

Documentation is available at Email.php

  1. <?php
  2. /* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
  3.  
  4. /**
  5.  * Email validation rule
  6.  * 
  7.  * PHP versions 4 and 5
  8.  *
  9.  * LICENSE: This source file is subject to version 3.01 of the PHP license
  10.  * that is available through the world-wide-web at the following URI:
  11.  * http://www.php.net/license/3_01.txt If you did not receive a copy of
  12.  * the PHP License and are unable to obtain it through the web, please
  13.  * send a note to license@php.net so we can mail you a copy immediately.
  14.  *
  15.  * @category    HTML
  16.  * @package     HTML_QuickForm
  17.  * @author      Bertrand Mansion <bmansion@mamasam.com>
  18.  * @copyright   2001-2011 The PHP Group
  19.  * @license     http://www.php.net/license/3_01.txt PHP License 3.01
  20.  * @version     CVS: $Id: Email.php 317587 2011-10-01 07:55:53Z avb $
  21.  * @link        http://pear.php.net/package/HTML_QuickForm
  22.  */
  23.  
  24. /**
  25.  * Abstract base class for QuickForm validation rules
  26.  */
  27. require_once 'HTML/QuickForm/Rule.php';
  28.  
  29. /**
  30.  * Email validation rule
  31.  *
  32.  * @category    HTML
  33.  * @package     HTML_QuickForm
  34.  * @author      Bertrand Mansion <bmansion@mamasam.com>
  35.  * @version     Release: 3.2.13
  36.  * @since       3.2
  37.  */
  38. {
  39.     var $regex = '/^((\"[^\"\f\n\r\t\v\b]+\")|([\w\!\#\$\%\&\'\*\+\-\~\/\^\`\|\{\}]+(\.[\w\!\#\$\%\&\'\*\+\-\~\/\^\`\|\{\}]+)*))@((\[(((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9])))\])|(((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9])))|((([A-Za-z0-9\-])+\.)+[A-Za-z\-]+))$/';
  40.  
  41.     /**
  42.      * Validates an email address
  43.      *
  44.      * @param     string    $email          Email address
  45.      * @param     boolean   $checkDomain    True if dns check should be performed
  46.      * @access    public
  47.      * @return    boolean   true if email is valid
  48.      */
  49.     function validate($email$checkDomain = false)
  50.     {
  51.         // Fix for bug #10799: add 'D' modifier to regex
  52.         if (preg_match($this->regex . 'D'$email)) {
  53.             if ($checkDomain && function_exists('checkdnsrr')) {
  54.                 $tokens explode('@'$email);
  55.                 if (checkdnsrr($tokens[1]'MX'|| checkdnsrr($tokens[1]'A')) {
  56.                     return true;
  57.                 }
  58.                 return false;
  59.             }
  60.             return true;
  61.         }
  62.         return false;
  63.     // end func validate
  64.  
  65.  
  66.     function getValidationScript($options = null)
  67.     {
  68.         return array("  var regex = " $this->regex . ";\n""{jsVar} != '' && !regex.test({jsVar})");
  69.     // end func getValidationScript
  70.  
  71. // end class HTML_QuickForm_Rule_Email
  72. ?>

Documentation generated on Sat, 01 Oct 2011 09:00:10 +0000 by phpDocumentor 1.4.3. PEAR Logo Copyright © PHP Group 2004.