private function normalize($str, $opts) { if (class_exists('Normalizer')) { if ($opts['nfc'] && !Normalizer::isNormalized($str, Normalizer::FORM_C)) { $str = Normalizer::normalize($str, Normalizer::FORM_C); } if ($opts['nfkc'] && !Normalizer::isNormalized($str, Normalizer::FORM_KC)) { $str = Normalizer::normalize($str, Normalizer::FORM_KC); } } else { if (!class_exists('I18N_UnicodeNormalizer')) { @(include_once 'I18N/UnicodeNormalizer.php'); } if (class_exists('I18N_UnicodeNormalizer')) { $normalizer = new I18N_UnicodeNormalizer(); if ($opts['nfc']) { $str = $normalizer->normalize($str, 'NFC'); } if ($opts['nfkc']) { $str = $normalizer->normalize($str, 'NFKC'); } } } return $str; }
private function normalize($str, $opts) { if ($opts['nfc'] || $opts['nfkc']) { if (class_exists('Normalizer', false)) { if ($opts['nfc'] && !Normalizer::isNormalized($str, Normalizer::FORM_C)) { $str = Normalizer::normalize($str, Normalizer::FORM_C); } if ($opts['nfkc'] && !Normalizer::isNormalized($str, Normalizer::FORM_KC)) { $str = Normalizer::normalize($str, Normalizer::FORM_KC); } } else { if (!class_exists('I18N_UnicodeNormalizer', false)) { @(include_once 'I18N/UnicodeNormalizer.php'); } if (class_exists('I18N_UnicodeNormalizer', false)) { $normalizer = new I18N_UnicodeNormalizer(); if ($opts['nfc']) { $str = $normalizer->normalize($str, 'NFC'); } if ($opts['nfkc']) { $str = $normalizer->normalize($str, 'NFKC'); } } } } if ($opts['lowercase']) { $str = strtolower($str); } if ($opts['convmap'] && is_array($opts['convmap'])) { $str = strtr($str, $opts['convmap']); } return $str; }
public static function normalize_platform_dependent_chars($value, $is_use_normalizer = false) { $value = self::normalize_platform_dependent_chars_simple($value); if (!$is_use_normalizer) { return $value; } require_once APPPATH . 'vendor' . DS . 'PEAR' . DS . 'I18N_UnicodeNormalizer' . DS . 'UnicodeNormalizer.php'; $normalizer = new I18N_UnicodeNormalizer(); return $normalizer->normalize($value, 'NFKC'); }