Ce face mb_ord / mb_chr
ord și chr lucrează doar cu un octet (0-255). Variantele mb_ lucrează cu coduri Unicode întregi: mb_ord("ș") dă 537, iar mb_chr(537) dă „ș”.
mb_ord se uită doar la primul caracter al textului. mb_chr returnează false pentru coduri care nu sunt caractere valide.
Parametri
| Parametru | Descriere |
|---|---|
$string |
La mb_ord: textul al cărui prim caracter este analizat. |
$codepoint |
La mb_chr: codul Unicode. |
$encoding |
Opțional. Codarea. |
Ce returnează
mb_ord: codul Unicode. mb_chr: caracterul. Ambele returnează false la eroare.
Exemple
Exemplul 1: Codurile literelor românești
<?php
foreach (mb_str_split("ăâîșț") as $litera) {
printf("%s = %d (U+%04X)\n", $litera, mb_ord($litera), mb_ord($litera));
}
Rezultat
ă = 259 (U+0103)
â = 226 (U+00E2)
î = 238 (U+00EE)
ș = 537 (U+0219)
ț = 539 (U+021B)
Exemplul 2: Diferența dintre ș cu virgulă și varianta veche, cu sedilă
Textele vechi folosesc adesea litera cu sedilă (U+015F). Codul arată ușor diferența.
<?php
$corect = mb_chr(0x219);
$vechi = mb_chr(0x15F);
echo "Virgulă: U+" . dechex(mb_ord($corect)) . ", sedilă: U+" . dechex(mb_ord($vechi)) . "\n";
var_dump($corect === $vechi);
Rezultat
Virgulă: U+219, sedilă: U+15f
bool(false)
Greșeli frecvente
- Folosești
ordpe o literă cu diacritice și primești doar primul octet (de exemplu 200), plus un mesajDeprecatedîn PHP 8.5. Foloseștemb_ord.
Comenzi înrudite
chr / ord: chr transformă un cod numeric (0-255) în caracter, iar ord face inversul: dă codul primului octet al unui text.mb_str_split: Împarte un text în caractere (sau grupuri de caractere), fără să strice literele cu diacritice.mb_encode_numericentity / mb_decode_numericentity: Transformă caracterele dintr-un interval de coduri în entități numerice HTML (ș) și invers.