mb_check_encoding în PHP

Verifică dacă un text este valid într-o anumită codare, de exemplu dacă este UTF-8 corect.

Sintaxă
mb_check_encoding(array|string|null $value = null, ?string $encoding = null): bool

Ce face mb_check_encoding

mb_check_encoding returnează true dacă toți octeții formează caractere valide în codarea dată. Este prima verificare utilă pentru datele primite din afară: formulare, fișiere încărcate, API-uri.

Din PHP 7.2 poate verifica și tablouri, inclusiv cheile lor.

Parametri

Parametru Descriere
$value Textul sau tabloul verificat.
$encoding Opțional. Codarea verificată. Implicit, codarea internă (UTF-8).

Ce returnează

true dacă textul este valid, altfel false.

Exemple

Exemplul 1: UTF-8 valid și invalid

<?php
$bun = "Iași";
$taiat = substr("Iași", 0, 3);
$vechi = mb_convert_encoding("Iași", "ISO-8859-16", "UTF-8");

var_dump(mb_check_encoding($bun, "UTF-8"));
var_dump(mb_check_encoding($taiat, "UTF-8"));
var_dump(mb_check_encoding($vechi, "UTF-8"));
var_dump(mb_check_encoding(["oras" => "Iași"], "UTF-8"));

Rezultat

bool(true)
bool(false)
bool(false)
bool(true)

Greșeli frecvente

  • Apelezi funcția fără parametri, ca în codul vechi. Această formă este învechită și verifică datele cererii curente; dă mereu textul ca parametru.

Comenzi înrudite

  • mb_scrub: Înlocuiește secvențele de octeți invalide dintr-un text cu caracterul de substituție, ca textul să devină valid.
  • mb_detect_encoding: Încearcă să ghicească în ce codare de caractere este scris un text.
  • mb_convert_encoding: Convertește un text dintr-o codare de caractere în alta, de exemplu din ISO-8859-16 în UTF-8.