ltrim()
Articolo sulla funzione PHP ltrim(), usata per rimuovere spazi bianchi o altri caratteri specificati dall'inizio di una stringa.
La funzione PHP ltrim() rimuove gli spazi bianchi (o altri caratteri specificati) dal lato sinistro — l'inizio — di una stringa. La "l" sta per left (sinistra). È il corrispettivo di rtrim(), che elimina i caratteri da destra, e di trim(), che li elimina da entrambi i lati.
ltrim() è particolarmente utile quando è necessario normalizzare un input che non si controlla completamente: spazi iniziali nei campi di un modulo, zeri iniziali negli identificatori o separatori iniziali rimasti dopo la suddivisione o la concatenazione di stringhe.
Sintassi
ltrim(string $string, string $characters = " \n\r\t\v\0"): string| Parametro | Descrizione |
|---|---|
$string | La stringa di input da cui rimuovere i caratteri. |
$characters | Opzionale. L'insieme di caratteri da eliminare. Ogni carattere viene trattato singolarmente — l'ordine non ha importanza. Se omesso, viene utilizzato l'insieme predefinito di spazi bianchi. |
La funzione restituisce una nuova stringa; quella originale non viene mai modificata (le stringhe PHP sono passate per valore).
Il set di caratteri predefinito
Quando si chiama ltrim() con un solo argomento, vengono rimossi i seguenti caratteri da sinistra:
" "(spazio ordinario)"\t"(tabulazione)"\n"(a capo)"\r"(ritorno a capo)"\0"(byte NUL)"\v"(tabulazione verticale)
Rimozione degli spazi iniziali
L'uso più comune è la pulizia degli spazi bianchi iniziali:
Output:
[Hello World! ]Si noti che gli spazi finali rimangono — ltrim() opera solo sul lato sinistro. Le parentesi quadre [ e ] sono aggiunte semplicemente per rendere visibili i confini nell'output.
Rimozione di caratteri specifici
Passa un secondo argomento per rimuovere un insieme personalizzato di caratteri al posto degli spazi bianchi. Un caso classico è l'eliminazione degli zeri iniziali:
<?php
echo ltrim("0042", "0"); // 42
echo "\n";
echo ltrim("xxxHello", "x"); // Hello
?>Output:
42
HelloL'argomento $characters è un insieme, non una sottostringa. Ogni carattere elencato viene rimosso in modo indipendente, quindi ltrim($line, ".,") elimina qualsiasi combinazione iniziale di punti e virgole:
<?php
$line = "...,.,Hello, World";
echo ltrim($line, ".,"); // Hello, World
?>Output:
Hello, WorldLa funzione si ferma al primo carattere che non appartiene all'insieme (H in questo caso), lasciando intatto il , interno in Hello, World.
Errori comuni
- Non è una rimozione di sottostringa.
ltrim("hello", "he")rimuove sia il caratterehsiae, restituendo"llo"— non ricerca il prefisso letterale"he". Per eliminare un prefisso noto, usastr_replace()sulla prima occorrenza oppuresubstr(). - Basato sui byte, non compatibile con Unicode.
ltrim()opera sui byte, quindi può corrompere caratteri UTF-8 multibyte se li elenchi in$characters. Per l'ASCII è del tutto sicuro; per rimuovere caratteri multibyte, usa un patternpreg_replace()con il modificatoreu. - Restituisce una copia. Assegna il risultato di nuovo se vuoi conservarlo:
$s = ltrim($s);.
Quale funzione usare
| Esigenza | Funzione |
|---|---|
| Rimuovere dall'inizio | ltrim() |
| Rimuovere dalla fine | rtrim() |
| Rimuovere da entrambi i lati | trim() |
Per un'introduzione più ampia alla gestione delle stringhe in PHP, consulta PHP Strings.