/** * Defined by Zend\Filter\Filter * * @param string $value * @return string */ public function filter($value) { if (self::hasPcreUnicodeSupport()) { parent::setPattern(array('#(?<=(?:\\p{Lu}))(\\p{Lu}\\p{Ll})#', '#(?<=(?:\\p{Ll}|\\p{Nd}))(\\p{Lu})#')); parent::setReplacement(array($this->separator . '\\1', $this->separator . '\\1')); } else { parent::setPattern(array('#(?<=(?:[A-Z]))([A-Z]+)([A-Z][A-z])#', '#(?<=(?:[a-z0-9]))([A-Z])#')); parent::setReplacement(array('\\1' . $this->separator . '\\2', $this->separator . '\\1')); } return parent::filter($value); }
/** * Defined by Zend\Filter\Filter * * @param string $value * @return string */ public function filter($value) { // a unicode safe way of converting characters to \x00\x00 notation $pregQuotedSeparator = preg_quote($this->separator, '#'); if (self::hasPcreUnicodeSupport()) { parent::setPattern(array('#(' . $pregQuotedSeparator . ')(\\p{L}{1})#eu', '#(^\\p{Ll}{1})#eu')); if (!extension_loaded('mbstring')) { parent::setReplacement(array("strtoupper('\\2')", "strtoupper('\\1')")); } else { parent::setReplacement(array("mb_strtoupper('\\2', 'UTF-8')", "mb_strtoupper('\\1', 'UTF-8')")); } } else { parent::setPattern(array('#(' . $pregQuotedSeparator . ')([A-Za-z]{1})#e', '#(^[A-Za-z]{1})#e')); parent::setReplacement(array("strtoupper('\\2')", "strtoupper('\\1')")); } return parent::filter($value); }