Ce face mb_substitute_character
Când mb_convert_encoding sau mb_scrub întâlnesc un caracter care nu poate fi reprezentat, îl înlocuiesc cu caracterul de substituție. Implicit este ? (codul 63).
Poți da un cod Unicode (de exemplu 0x2A pentru *), "none" (caracterul este eliminat), "long" (se scrie codul, de exemplu U+219) sau "entity" (entitate HTML, de exemplu ș).
Parametri
| Parametru | Descriere |
|---|---|
$substitute_character |
Opțional. Un cod Unicode sau unul dintre textele "none", "long", "entity". |
Ce returnează
Setarea curentă (fără parametru) sau true după setare.
Exemple
Exemplul 1: Diacritice convertite în ASCII
<?php
$text = "Iași, 15 €";
echo mb_substitute_character() . ": " . mb_convert_encoding($text, "ASCII", "UTF-8") . "\n";
mb_substitute_character(0x2A);
echo mb_convert_encoding($text, "ASCII", "UTF-8") . "\n";
mb_substitute_character("none");
echo mb_convert_encoding($text, "ASCII", "UTF-8") . "\n";
mb_substitute_character("long");
echo mb_convert_encoding($text, "ASCII", "UTF-8");
Rezultat
63: Ia?i, 15 ?
Ia*i, 15 *
Iai, 15
IaU+219i, 15 U+20AC
Greșeli frecvente
- Folosești
"none"ca să „scapi” de diacritice și numele devin greu de citit („Iai”). Pentru texte fără diacritice înlocuiește literele custrtr.
Comenzi înrudite
mb_convert_encoding: Convertește un text dintr-o codare de caractere în alta, de exemplu din ISO-8859-16 în UTF-8.mb_scrub: Înlocuiește secvențele de octeți invalide dintr-un text cu caracterul de substituție, ca textul să devină valid.strtr: Înlocuiește caractere sau texte după o listă de perechi, fără să înlocuiască de două ori același loc.