W3docs

strtoupper()

La funzione strtoupper() in PHP converte tutte le lettere minuscole di una stringa in maiuscolo. Particolarmente utile per normalizzare dati e confronti.

Introduzione

strtoupper() converte ogni lettera minuscola in una stringa in maiuscolo e restituisce il risultato. La stringa originale rimane invariata — come tutte le funzioni PHP per le stringhe, strtoupper() restituisce una nuova stringa invece di modificare l'argomento in loco.

Si ricorre a questa funzione ogni volta che è necessario un output o un confronto senza distinzione tra maiuscole e minuscole: normalizzare codici paese (usUS), scrivere un titolo in maiuscolo o confrontare due stringhe indipendentemente dalle maiuscole. Questa pagina tratta la sintassi, l'importante avvertenza sui multibyte e le funzioni correlate che si usano spesso insieme.

Sintassi

strtoupper(string $string): string
ParteDescrizione
$stringLa stringa di input. Obbligatoria.
Valore restituitoUna copia di $string con ogni lettera ASCII minuscola (az) convertita in maiuscolo. I caratteri non alfabetici vengono restituiti invariati.

Un esempio di base

php— editable, runs on the server

Cifre, spazi e punteggiatura (!) passano invariati — solo le lettere vengono convertite in maiuscolo. Si noti che $string contiene ancora "Hello World!"; il testo convertito si trova in $uppercase.

Confronto senza distinzione tra maiuscole e minuscole

Un utilizzo comune è confrontare l'input dell'utente senza preoccuparsi di come è stato digitato. Si convertono entrambi i lati in maiuscolo e poi si confrontano:

<?php

$input = "Yes";

if (strtoupper($input) === "YES") {
    echo "Confirmed";
} else {
    echo "Not confirmed";
}
// Confirmed

È per questo che strtoupper() (e la sua controparte strtolower()) compare così spesso nel codice per la gestione dei form e il routing.

Il problema con i multibyte

strtoupper() è basata sui byte e non tiene conto delle impostazioni locali per qualsiasi cosa al di fuori dell'ASCII puro. Sa solo come convertire in maiuscolo az. Le lettere accentate e non latine vengono lasciate invariate:

<?php

echo strtoupper("café"); // CAFé  — the é is not converted

Per il testo Unicode (stringhe UTF-8 con accenti, ñ, cirillico, greco, ecc.) si usa mb_strtoupper(), che comprende le codifiche dei caratteri:

<?php

echo mb_strtoupper("café", "UTF-8"); // CAFÉ

Regola pratica: dati solo ASCII (codici, slug, etichette solo in inglese) → strtoupper(). Qualsiasi cosa che potrebbe contenere caratteri internazionali → mb_strtoupper().

Funzioni correlate

  • strtolower() — l'inverso: converte le lettere maiuscole in minuscolo.
  • ucfirst() — converte in maiuscolo solo il primo carattere di una stringa.
  • ucwords() — converte in maiuscolo il primo carattere di ogni parola.

strtoupper() restituisce una nuova copia completamente in maiuscolo di una stringa ASCII ed è utile per normalizzare i dati e per i confronti senza distinzione tra maiuscole e minuscole. Per il testo che potrebbe contenere caratteri non ASCII, è preferibile usare mb_strtoupper() in modo che le lettere accentate e non latine vengano convertite correttamente.

Pratica

Pratica
Cosa fa la funzione PHP strtoupper?
Cosa fa la funzione PHP strtoupper?
Was this page helpful?