Nei seguenti esempi, $lungh è la lunghezza cui vogliamo portare la
stringa, $testo o $num contengono la stringa da allungare,
e $carat contiene il carattere con cui
riempire. Se si conosce questo carattere in anticipo, si può usare
una costante composta da una stringa di un solo carattere invece della variabile
$carat. E allo stesso modo potete usare un intero al posto di $lungh se conoscete
già la lunghezza.
Il metodo più semplice utilizza la funzione sprintf. Può
riempire sulla sinistra o sulla destra con spazi, sulla sinistra con zeri e
non troncherà il risultato. La funzione pack può solo
riempire le stringhe con degli spazi sulla destra e troncherà il
risultato fino ad una lunghezza massima di $lungh.
# Riempimento di una stringa a sinistra con spazi (nessun troncamento):
$riempito = sprintf("%${lungh}s", $testo);
$riempito = sprintf("%*s", $lungh, $testo); # stessa cosa
# Riempimento di una stringa a destra con spazi (nessun troncamento):
$riempito = sprintf("%-${lungh}s", $testo);
$riempito = sprintf("%-*s", $lungh, $testo); # stessa cosa
# Riempimento di un numero a sinistra con zeri (nessun troncamento):
$riempito = sprintf("%0${lungh}d", $num);
$riempito = sprintf("%0*d", $lungh, $num); # stessa cosa
# Riempimento di una stringa a destra con spazi usando pack (verra` troncata):
$riempito = pack("A$lungh",$testo);
Se si ha la necessità di riempire con un carattere che non sia lo
spazio o lo zero, si può usare uno dei metodi seguenti. Generano
tutti una stringa di riempimente usando l'operatore x e la combinano con
$testo. Questi metodi non troncano $testo.
Riempimento a sinistra e a destra con qualsiasi carattere, creando una
nuova stringa:
$riempito = $carat x ( $lungh - length( $testo) ) . $testo;
$riempito = $testo. $carat x ( $lungh - length( $testo) );
Riempimento a sinistra e a destra con qualsiasi carattere, modificando
direttamente $testo:
substr( testo, 0, 0 ) = $carat x ( $lungh - length( $testo) );
$testo.= $carat x ( $lungh - length( $testo) );
|