/** * Checks for allowed characters * @see Zend\Validator\Barcode.AbstractAdapter::checkChars() */ public function hasValidCharacters($value) { if (strpbrk($value, 'ABCD')) { $first = $value[0]; if (!strpbrk($first, 'ABCD')) { // Missing start char return false; } $last = substr($value, -1, 1); if (!strpbrk($last, 'ABCD')) { // Missing stop char return false; } $value = substr($value, 1, -1); } elseif (strpbrk($value, 'TN*E')) { $first = $value[0]; if (!strpbrk($first, 'TN*E')) { // Missing start char return false; } $last = substr($value, -1, 1); if (!strpbrk($last, 'TN*E')) { // Missing stop char return false; } $value = substr($value, 1, -1); } $chars = $this->getCharacters(); $this->setCharacters('0123456789-$:/.+'); $result = parent::hasValidCharacters($value); $this->setCharacters($chars); return $result; }
/** * Allows X on length of 8 chars * * @param string $value The barcode to check for allowed characters * @return bool */ public function hasValidCharacters($value) { if (strlen($value) != 8) { if (strpos($value, 'X') !== false) { return false; } } return parent::hasValidCharacters($value); }
/** * Allows start and stop tag within checked chars * * @param string $value The barcode to check for allowed characters * @return boolean */ public function hasValidCharacters($value) { if ($value[0] == '(') { $value = substr($value, 1); if ($value[strlen($value) - 1] == ')') { $value = substr($value, 0, -1); } else { return false; } } return parent::hasValidCharacters($value); }