Ce face mb_scrub
Un text poate conține octeți care nu formează caractere valide, de exemplu după o tăiere cu substr. mb_scrub păstrează partea validă și pune caracterul de substituție (implicit ?, setabil cu mb_substitute_character) în locul secvențelor stricate.
După mb_scrub textul poate fi transmis fără probleme lui json_encode sau unei baze de date.
Parametri
| Parametru | Descriere |
|---|---|
$string |
Textul curățat. |
$encoding |
Opțional. Codarea textului. |
Ce returnează
Textul valid.
Exemple
Exemplul 1: Text tăiat greșit, reparat înainte de JSON
<?php
$taiat = substr("Iași", 0, 3);
var_dump(json_encode(["oras" => $taiat]));
var_dump(json_encode(["oras" => mb_scrub($taiat)]));
Rezultat
bool(false)
string(14) "{"oras":"Ia?"}"
Greșeli frecvente
- Folosești
mb_scrubca să repari un text într-o codare veche (de exemplu ISO-8859-16). Diacriticele devin?; textul trebuie convertit cumb_convert_encoding.
Comenzi înrudite
mb_check_encoding: Verifică dacă un text este valid într-o anumită codare, de exemplu dacă este UTF-8 corect.mb_substitute_character: Setează caracterul pus în locul caracterelor invalide sau imposibil de convertit.json_encode: Transformă un tablou sau obiect PHP în text JSON.