composer update
This commit is contained in:
parent
f6abc3dce2
commit
71dfaca858
1753 changed files with 45274 additions and 14619 deletions
|
@ -107,6 +107,29 @@ class PhpTransliteration implements TransliterationInterface {
|
|||
public function transliterate($string, $langcode = 'en', $unknown_character = '?', $max_length = NULL) {
|
||||
$result = '';
|
||||
$length = 0;
|
||||
$hash = FALSE;
|
||||
|
||||
// Replace question marks with a unique hash if necessary. This because
|
||||
// mb_convert_encoding() replaces all invalid characters with a question
|
||||
// mark.
|
||||
if ($unknown_character != '?' && strpos($string, '?') !== FALSE) {
|
||||
$hash = hash('sha256', $string);
|
||||
$string = str_replace('?', $hash, $string);
|
||||
}
|
||||
|
||||
// Ensure the string is valid UTF8 for preg_split(). Unknown characters will
|
||||
// be replaced by a question mark.
|
||||
$string = mb_convert_encoding($string, 'UTF-8', 'UTF-8');
|
||||
|
||||
// Use the provided unknown character instead of a question mark.
|
||||
if ($unknown_character != '?') {
|
||||
$string = str_replace('?', $unknown_character, $string);
|
||||
// Restore original question marks if necessary.
|
||||
if ($hash !== FALSE) {
|
||||
$string = str_replace($hash, '?', $string);
|
||||
}
|
||||
}
|
||||
|
||||
// Split into Unicode characters and transliterate each one.
|
||||
foreach (preg_split('//u', $string, 0, PREG_SPLIT_NO_EMPTY) as $character) {
|
||||
$code = self::ordUTF8($character);
|
||||
|
|
Reference in a new issue