W3docs

chop()

Articolo sulla funzione PHP chop(), usata per rimuovere spazi o altri caratteri dalla fine di una string. Utile per pulire l'input.

La funzione PHP chop() rimuove gli spazi bianchi (o altri caratteri specificati) dalla fine (lato destro) di una string e restituisce il risultato. Non tocca l'inizio della string e non modifica mai la variabile originale — restituisce una nuova string.

Questa pagina illustra la sintassi di chop(), quali caratteri vengono rimossi per impostazione predefinita, come passare una maschera di caratteri personalizzata e le insidie più comuni da tenere a mente.

chop() è un alias di rtrim()

La cosa più importante da sapere: chop() è semplicemente un alias di rtrim(). Le due funzioni hanno un comportamento identico — chop è il nome più vecchio (familiare agli sviluppatori Perl), mentre rtrim ("right trim") è quello più descrittivo. Il nuovo codice preferisce generalmente rtrim(), ma chop() è ancora presente in molte codebase esistenti.

Se hai bisogno di rimuovere caratteri dal lato sinistro, usa ltrim(); per rimuoverli da entrambi i lati, usa trim().

Sintassi

chop(string $string, string $characters = " \n\r\t\v\0"): string

La funzione accetta uno o due parametri:

  • $string — la string da elaborare.
  • $characters (opzionale) — un elenco di caratteri da rimuovere dalla fine. Se omesso, chop() rimuove i caratteri di spazio bianco predefiniti elencati di seguito.

Restituisce la string elaborata. L'input viene passato per valore, quindi $string rimane invariata.

Caratteri rimossi per impostazione predefinita

Quando si chiama chop() con un solo argomento, vengono rimossi i seguenti caratteri dalla fine:

CarattereSignificato
" "spazio ordinario
"\t"tabulazione
"\n"a capo (line feed)
"\r"ritorno a capo (carriage return)
"\0"byte NUL
"\v"tabulazione verticale

Rimozione degli spazi finali

L'uso più comune è la pulizia degli spazi, delle tabulazioni o delle interruzioni di riga finali — ad esempio dopo aver letto una riga da un file:

php— editable, runs on the server

Aggiungiamo un | per rendere visibile il confine dopo l'elaborazione. Output:

Hello, World!|

Gli spazi finali sono spariti, mentre tutto ciò che li precede è rimasto invariato.

Utilizzo di una maschera di caratteri

Passa un secondo argomento per rimuovere un insieme personalizzato di caratteri al posto degli spazi bianchi. Ogni carattere nella maschera viene rimosso dalla fine, ripetutamente, finché non si incontra un carattere che non è nella maschera:

php— editable, runs on the server

Output:

Hello, Wor

La maschera "ld!" è un insieme di caratteri, non una sottostringa. Leggendo da destra, !, d, l e poi d sono tutti nell'insieme e vengono rimossi; r non è nell'insieme, quindi l'elaborazione si ferma lì.

Intervalli di caratteri con ..

All'interno della maschera puoi esprimere un intervallo con due punti. Ad esempio, "0..9" significa "qualsiasi cifra", quindi questo rimuove tutti i numeri finali:

<?php
echo chop("order100200", "0..9");
?>

Output:

order

Insidie comuni

  • Elabora solo le estremità, non il centro. chop("a b ") restituisce "a b" — gli spazi tra a e b rimangono.
  • La maschera è un insieme di caratteri, non un suffisso letterale. chop("Hello, World!", "Hd") restituisce la string invariata, perché l'ultimo carattere ! non è nell'insieme H/d, quindi l'elaborazione non inizia mai.
  • Non modifica la variabile originale. Assegna sempre o usa il valore restituito: $clean = chop($raw);.

Quando utilizzarla

Usa chop() / rtrim() ogni volta che i caratteri finali potrebbero compromettere un confronto o la visualizzazione:

  • Rimuovere il carattere di a capo alla fine di una riga letta con fgets().
  • Pulire l'input dell'utente prima di salvarlo.
  • Rimuovere una barra finale da un percorso o URL: rtrim($path, "/").

Per sostituire caratteri in qualsiasi punto di una string (non solo alle estremità), usa invece str_replace().

Esercitazione

Pratica
Qual è la funzione di 'chop()' in PHP?
Qual è la funzione di 'chop()' in PHP?
Was this page helpful?