W3docs

trim()

La funzione trim() in PHP rimuove spazi bianchi o altri caratteri specificati dall'inizio e dalla fine di una string.

Introduzione

La funzione trim() in PHP rimuove gli spazi bianchi (o altri caratteri da te specificati) da entrambi l'inizio e la fine di una string. È una delle funzioni per le stringhe più utilizzate, poiché il testo proveniente da form, file e richieste HTTP arriva quasi sempre con spazi, tabulazioni o a capo superflui intorno ad esso.

Questo capitolo tratta la sintassi, i caratteri predefiniti rimossi da trim(), come rimuovere un set di caratteri personalizzato, le differenze tra trim(), ltrim() e rtrim(), e gli errori più comuni da evitare.

Sintassi

trim(string $string, string $characters = " \n\r\t\v\x00"): string
ParametroDescrizione
$stringLa string di input da elaborare.
$charactersOpzionale. Il set di caratteri da rimuovere. Se omesso, viene utilizzato il set predefinito di spazi bianchi.

La funzione restituisce una nuova string elaborata — non modifica la $string originale (le stringhe in PHP vengono passate per valore).

Per impostazione predefinita, trim() rimuove questi caratteri da entrambe le estremità:

CarattereSignificato
" "Uno spazio ordinario
"\t"Una tabulazione
"\n"Un'interruzione di riga (nuova riga)
"\r"Un ritorno a capo
"\0"Il byte NUL
"\x0B" (\v)Una tabulazione verticale

Esempio di base

Rimuovere gli spazi iniziali e finali da una string:

php— editable, runs on the server

Le parentesi quadre vengono stampate solo per rendere visibile il risultato — dimostrano che gli spazi su entrambi i lati sono stati rimossi, mentre lo spazio interno (Hello, world!) viene mantenuto.

Rimozione di caratteri personalizzati

Il secondo argomento consente di scegliere esattamente quali caratteri rimuovere. È utile per pulire delimitatori, barre oblique o virgolette:

<?php

echo trim("xxxHello worldxxx", "x"), "\n"; // Hello world
echo trim("/var/www/html/", "/"), "\n";    // var/www/html
echo trim("###Section###", "#"), "\n";     // Section

Puoi passare più caratteri contemporaneamente — trim() rimuove qualsiasi di essi da ciascuna estremità finché non incontra un carattere che non è nel set:

<?php

echo trim("**[Note]**", "*[]"); // Note

Si noti che solo le estremità vengono interessate: le parentesi all'interno della string restano intatte, proprio come lo spazio interno nel primo esempio.

Intervalli di caratteri con ".."

All'interno dell'argomento $characters è possibile specificare un intervallo con due punti. Ad esempio, per rimuovere i caratteri di controllo ASCII:

<?php

$dirty = "\x01\x02Hello\x03";
echo trim($dirty, "\x00..\x1F"); // Hello

trim() vs ltrim() vs rtrim()

trim() agisce su entrambe le estremità. Quando si vuole intervenire su un solo lato, si utilizzano le funzioni correlate:

FunzioneRimuove da
trim()entrambe le estremità
ltrim()il lato sinistro (inizio) soltanto
rtrim()il lato destro (fine) soltanto
<?php

$value = "...data...";

echo trim($value, "."),  "\n";  // data
echo ltrim($value, "."), "\n";  // data...
echo rtrim($value, "."), "\n";  // ...data

Caso d'uso comune: pulizia dell'input dell'utente

trim() è particolarmente utile nella validazione dell'input dei form. Un utente potrebbe digitare uno spazio finale dopo la propria email o lasciare il campo vuoto con soli spazi. Effettuare il trim prima rende questi controlli affidabili:

<?php

$username = "  alice  ";
$username = trim($username);

if ($username === "") {
    echo "Username is required.";
} else {
    echo "Welcome, " . $username . "!"; // Welcome, alice!
}

Senza la chiamata a trim(), un valore come " " (solo spazi) supererebbe un controllo if (!empty($username)) pur essendo di fatto vuoto.

Problemi comuni

  • Restituisce un valore, non modifica la variabile. trim($string); da solo non è utile — è necessario assegnare il risultato: $string = trim($string);.
  • Il set personalizzato è un elenco, non una sottostring. trim("Hello", "Helo") rimuove ogni carattere iniziale/finale che compare in "Helo", non la parola letterale — quindi può eliminare più di quanto ci si aspetti.
  • Caratteri multibyte. trim() opera sui byte, non sui code point Unicode. Per rimuovere spazi bianchi multibyte, utilizzare un set personalizzato o un'espressione regolare.
  • Agisce solo sulle estremità. Per rimuovere caratteri ovunque nella string, utilizzare str_replace() o preg_replace().

Conclusione

La funzione trim() è lo strumento principale per pulire le estremità di una string — gli spazi bianchi per impostazione predefinita, oppure qualsiasi set di caratteri fornito. Combinata con le funzioni correlate ltrim() e rtrim(), rende la validazione dell'input e la normalizzazione delle stringhe semplici e prevedibili.

Per continuare a imparare sulla gestione delle stringhe in PHP, consulta PHP Strings, str_replace(), explode() e str_pad().

Esercizio

Pratica
Cosa fa la funzione PHP trim()?
Cosa fa la funzione PHP trim()?
Was this page helpful?