mb_strtoupper / mb_strtolower în PHP

Transformă un text în majuscule (mb_strtoupper) sau litere mici (mb_strtolower), inclusiv literele cu diacritice.

Sintaxă
mb_strtoupper(string $string, ?string $encoding = null): string

Ce face mb_strtoupper / mb_strtolower

strtoupper și strtolower transformă doar literele englezești. Variantele mb_ cunosc regulile Unicode, deci transformă corect ă în Ă, ș în Ș și așa mai departe.

Pentru texte în română, folosește mereu variantele mb_: la titluri, la compararea fără majuscule și la normalizarea datelor introduse de utilizatori.

Parametri

Parametru Descriere
$string Textul transformat.
$encoding Opțional. Codarea textului.

Ce returnează

Textul nou, cu literele transformate.

Exemple

Exemplul 1: Diferența față de strtoupper

<?php
$text = "școală în țară";

echo strtoupper($text) . "\n";
echo mb_strtoupper($text) . "\n";
echo mb_strtolower("ȘTEFAN CEL MARE");

Rezultat

șCOALă îN țARă
ȘCOALĂ ÎN ȚARĂ
ștefan cel mare

Exemplul 2: Căutare fără majuscule, cu diacritice

<?php
$cautare = "BRAȘOV";
$orase = ["Iași", "Brașov", "Cluj"];

foreach ($orase as $oras) {
    if (mb_strtolower($oras) === mb_strtolower($cautare)) {
        echo "Găsit: $oras";
    }
}

Rezultat

Găsit: Brașov

Greșeli frecvente

  • Folosești strtolower pentru a compara nume românești și „ȘTEFAN” nu este egal cu „ștefan”. Folosește mb_strtolower.

Comenzi înrudite

  • strtolower / strtoupper: Transformă toate literele unui text în litere mici (strtolower) sau mari (strtoupper).
  • mb_convert_case: Schimbă literele unui text în majuscule, litere mici sau „Prima Literă Mare” la fiecare cuvânt, cu diacritice.
  • ucfirst / ucwords: Face prima literă a textului majusculă (ucfirst) sau prima literă a fiecărui cuvânt (ucwords).