/** */ protected static function _intlToAscii($str) { if (!isset(self::$_transliterator)) { self::$_transliterator = Transliterator::create('Any-Latin; Latin-ASCII'); } return self::$_transliterator->transliterate($str); }
/** * @param string $string * * @return string * * @throws TransliterateException */ public function transliterate($string) { $string = $this->transliterator->transliterate($string); if ($string === false) { throw new TransliterateException($this->transliterator->getErrorMessage(), $this->transliterator->getErrorCode()); } return $string; }
/** * @param $values * @return mixed|string */ private function generateSlugValue($values) { $usableValues = []; foreach ($values as $fieldName => $fieldValue) { if (!empty($fieldValue)) { $usableValues[] = $fieldValue; } } if (count($usableValues) < 1) { throw new \UnexpectedValueException('Sluggable expects to have at least one usable (non-empty) field from the following: [ ' . implode(array_keys($values), ',') . ' ]'); } // generate the slug itself $sluggableText = implode(' ', $usableValues); $transliterator = new Transliterator(); $sluggableText = $transliterator->transliterate($sluggableText, $this->getSlugDelimiter()); $urlized = strtolower(trim(preg_replace("/[^a-zA-Z0-9\\/_|+ -]/", '', $sluggableText), $this->getSlugDelimiter())); $urlized = preg_replace("/[\\/_|+ -]+/", $this->getSlugDelimiter(), $urlized); return $urlized; }
private static function toLowerMb($str) { if (self::$to_lower === null) { self::$to_lower = \Transliterator::create('Any-Lower'); } return self::$to_lower->transliterate($str); }
/** * @since 0.1 * * @param integer $flag */ public function applyTransliteration($flag = Transliterator::DIACRITICS) { $this->string = Transliterator::transliterate($this->string, $flag); }
/** * @since 0.1 * * @param string $text * * @param integer $flag */ public static function applyTransliteration($text, $flag = Transliterator::DIACRITICS) { return Transliterator::transliterate($text, $flag); }
/** * Transliterate using the Transliterator package. * * @param string $str Input string (UTF-8). * * @return mixed Transliterated string (UTF-8), or false on error. */ protected static function _intlToAscii($str) { if (class_exists('Transliterator')) { if (!isset(self::$_transliterator)) { self::$_transliterator = Transliterator::create('Any-Latin; Latin-ASCII'); } if (!is_null(self::$_transliterator)) { /* Returns false on error. */ return self::$_transliterator->transliterate($str); } } return false; }