8 * This source file is subject to the new BSD license that is bundled
9 * with this package in the file LICENSE.txt.
10 * It is also available through the world-wide-web at this URL:
11 * http://framework.zend.com/license/new-bsd
12 * If you did not receive a copy of the license and are unable to
13 * obtain it through the world-wide-web, please send an email
14 * to license@zend.com so we can send you a copy immediately.
17 * @package Zend_Validate
18 * @copyright Copyright (c) 2005-2009 Zend Technologies USA Inc. (http://www.zend.com)
19 * @license http://framework.zend.com/license/new-bsd New BSD License
20 * @version $Id: Hex.php 17470 2009-08-08 22:27:09Z thomas $
25 * @see Zend_Validate_Abstract
27 require_once 'Zend/Validate/Abstract.php';
32 * @package Zend_Validate
33 * @copyright Copyright (c) 2005-2009 Zend Technologies USA Inc. (http://www.zend.com)
34 * @license http://framework.zend.com/license/new-bsd New BSD License
36 class Zend_Validate_Hex
extends Zend_Validate_Abstract
38 const INVALID
= 'hexInvalid';
39 const NOT_HEX
= 'notHex';
42 * Validation failure message template definitions
46 protected $_messageTemplates = array(
47 self
::INVALID
=> "Invalid type given, value should be a string",
48 self
::NOT_HEX
=> "'%value%' has not only hexadecimal digit characters"
52 * Defined by Zend_Validate_Interface
54 * Returns true if and only if $value contains only hexadecimal digit characters
56 * @param string $value
59 public function isValid($value)
61 if (!is_string($value) && !is_int($value)) {
62 $this->_error(self
::INVALID
);
66 $this->_setValue($value);
67 if (!ctype_xdigit((string) $value)) {
68 $this->_error(self
::NOT_HEX
);