function PhpTransliteration::ordUTF8
Same name in other branches
- 9 core/lib/Drupal/Component/Transliteration/PhpTransliteration.php \Drupal\Component\Transliteration\PhpTransliteration::ordUTF8()
- 10 core/lib/Drupal/Component/Transliteration/PhpTransliteration.php \Drupal\Component\Transliteration\PhpTransliteration::ordUTF8()
- 11.x core/lib/Drupal/Component/Transliteration/PhpTransliteration.php \Drupal\Component\Transliteration\PhpTransliteration::ordUTF8()
Finds the character code for a UTF-8 character: like ord() but for UTF-8.
Parameters
string $character: A single UTF-8 character.
Return value
int The character code, or -1 if an illegal character is found.
2 calls to PhpTransliteration::ordUTF8()
- PhpTransliteration::removeDiacritics in core/
lib/ Drupal/ Component/ Transliteration/ PhpTransliteration.php - Removes diacritics (accents) from certain letters.
- PhpTransliteration::transliterate in core/
lib/ Drupal/ Component/ Transliteration/ PhpTransliteration.php - Transliterates text from Unicode to US-ASCII.
File
-
core/
lib/ Drupal/ Component/ Transliteration/ PhpTransliteration.php, line 185
Class
- PhpTransliteration
- Implements transliteration without using the PECL extensions.
Namespace
Drupal\Component\TransliterationCode
protected static function ordUTF8($character) {
$first_byte = ord($character[0]);
if (($first_byte & 0x80) == 0) {
// Single-byte form: 0xxxxxxxx.
return $first_byte;
}
if (($first_byte & 0xe0) == 0xc0) {
// Two-byte form: 110xxxxx 10xxxxxx.
return (($first_byte & 0x1f) << 6) + (ord($character[1]) & 0x3f);
}
if (($first_byte & 0xf0) == 0xe0) {
// Three-byte form: 1110xxxx 10xxxxxx 10xxxxxx.
return (($first_byte & 0xf) << 12) + ((ord($character[1]) & 0x3f) << 6) + (ord($character[2]) & 0x3f);
}
if (($first_byte & 0xf8) == 0xf0) {
// Four-byte form: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx.
return (($first_byte & 0x7) << 18) + ((ord($character[1]) & 0x3f) << 12) + ((ord($character[2]) & 0x3f) << 6) + (ord($character[3]) & 0x3f);
}
// Other forms are not legal.
return -1;
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.