public PhpTransliteration::transliterate($string, $langcode = 'en', $unknown_character = '?', $max_length = NULL)
Transliterates text from Unicode to US-ASCII.
Parameters
string $string: The string to transliterate.
string $langcode: (optional) The language code of the language the string is in. Defaults to 'en' if not provided. Warning: this can be unfiltered user input.
string $unknown_character: (optional) The character to substitute for characters in $string without transliterated equivalents. Defaults to '?'.
int $max_length: (optional) If provided, return at most this many characters, ensuring that the transliteration does not split in the middle of an input character's transliteration.
Return value
string $string with non-US-ASCII characters transliterated to US-ASCII characters, and unknown characters replaced with $unknown_character.
Overrides TransliterationInterface::transliterate
File
- core/lib/Drupal/Component/Transliteration/PhpTransliteration.php, line 107
Class
- PhpTransliteration
- Implements transliteration without using the PECL extensions.
Namespace
Drupal\Component\Transliteration
Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | public function transliterate( $string , $langcode = 'en' , $unknown_character = '?' , $max_length = NULL) { $result = '' ; $length = 0; // Split into Unicode characters and transliterate each one. foreach (preg_split( '//u' , $string , 0, PREG_SPLIT_NO_EMPTY) as $character ) { $code = self::ordUTF8( $character ); if ( $code == -1) { $to_add = $unknown_character ; } else { $to_add = $this ->replace( $code , $langcode , $unknown_character ); } // Check if this exceeds the maximum allowed length. if (isset( $max_length )) { $length += strlen ( $to_add ); if ( $length > $max_length ) { // There is no more space. return $result ; } } $result .= $to_add ; } return $result ; } |
Please login to continue.