Gestione delle stringhe in PHP: uso pratico di <strong>str_pad()</strong> per allineare e formattare testi

by theArchitect
SHARE
Gestione delle stringhe in PHP: uso pratico di <strong>str_pad()</strong> per allineare e formattare testi
© Guida-HTML5.it

Introduzione

Quando si parla di gestione delle stringhe in PHP, spesso si pensa subito a ricerca, sostituzione o divisione del testo. Esiste però un sotto-argomento molto utile nella pratica quotidiana: l’allineamento e la formattazione delle stringhe con str_pad().

Questa funzione è perfetta quando devi generare output leggibili, ad esempio:

  • tabelle testuali in console;
  • report semplici in formato testo;
  • menu o liste con colonne allineate;
  • codici identificativi con zeri iniziali;
  • interfacce testuali dove l’aspetto ordinato conta molto.

In un contesto reale, la formattazione del testo migliora la leggibilità e rende più professionale l’output del tuo script. str_pad() è una funzione semplice, ma se usata bene può risolvere molti problemi ricorrenti senza ricorrere a soluzioni complicate.

Codice completo

<?php
declare(strict_types=1);

/**
 * Esempio pratico di uso di str_pad() per formattare dati testuali.
 * Scenario: generiamo una piccola tabella di prodotti in formato testo.
 */

$prodotti = [
    [
        ´id´ => 1,
        ´nome´ => ´Mouse wireless´,
        ´prezzo´ => 19.9,
        ´quantita´ => 4,
    ],
    [
        ´id´ => 12,
        ´nome´ => ´Tastiera meccanica´,
        ´prezzo´ => 89.5,
        ´quantita´ => 2,
    ],
    [
        ´id´ => 103,
        ´nome´ => ´Monitor 27 pollici´,
        ´prezzo´ => 229.99,
        ´quantita´ => 1,
    ],
];

/**
 * Formatta un numero come valuta.
 */
function formatCurrency(float $value): string
{
    return number_format($value, 2, ´,´, ´.´) . ´ €´;
}

/**
 * Crea una riga allineata usando str_pad().
 */
function formatProductRow(array $product): string
{
    $id = str_pad((string)$product[´id´], 5, ´0´, STR_PAD_LEFT);
    $nome = str_pad($product[´nome´], 22, ´ ´, STR_PAD_RIGHT);
    $prezzo = str_pad(formatCurrency($product[´prezzo´]), 12, ´ ´, STR_PAD_LEFT);
    $quantita = str_pad((string)$product[´quantita´], 8, ´ ´, STR_PAD_LEFT);

    return $id . ´ | ´ . $nome . ´ | ´ . $prezzo . ´ | ´ . $quantita;
}

/**
 * Intestazione della tabella.
 */
$header = str_pad(´ID´, 5, ´ ´, STR_PAD_RIGHT) . ´ | ´ .
          str_pad(´Nome prodotto´, 22, ´ ´, STR_PAD_RIGHT) . ´ | ´ .
          str_pad(´Prezzo´, 12, ´ ´, STR_PAD_LEFT) . ´ | ´ .
          str_pad(´Q.tà´, 8, ´ ´, STR_PAD_LEFT);

$separator = str_repeat(´-´, strlen($header));

echo $header . PHP_EOL;
echo $separator . PHP_EOL;

foreach ($prodotti as $prodotto) {
    echo formatProductRow($prodotto) . PHP_EOL;
}

// Esempio extra: allineamento di un codice numerico con zeri iniziali
$ordine = 78;
$codiceOrdine = ´ORD-´ . str_pad((string)$ordine, 6, ´0´, STR_PAD_LEFT);

echo PHP_EOL;
echo "Codice ordine: " . $codiceOrdine . PHP_EOL;

Spiegazione

La funzione str_pad() serve a riempire una stringa fino a una certa lunghezza, aggiungendo caratteri a sinistra, a destra oppure su entrambi i lati.

La sintassi base è questa:

str_pad(string $string, int $length, string $pad_string = " ", int $pad_type = STR_PAD_RIGHT): string

Parametri principali

  • $string: la stringa di partenza.
  • $length: la lunghezza finale desiderata.
  • $pad_string: il carattere o testo da usare per il riempimento.
  • $pad_type: definisce dove aggiungere il padding.

Tipi di padding

  • STR_PAD_RIGHT: aggiunge caratteri a destra.
  • STR_PAD_LEFT: aggiunge caratteri a sinistra.
  • STR_PAD_BOTH: distribuisce il padding su entrambi i lati.

Nel codice di esempio abbiamo usato str_pad() in tre modi diversi:

  • ID con zeri iniziali: str_pad((string)$product[´id´], 5, ´0´, STR_PAD_LEFT)
  • Nome prodotto allineato a sinistra: utile per creare colonne leggibili
  • Prezzo e quantità allineati a destra: tipico delle colonne numeriche

Questo approccio è molto utile quando generi output testuale, perché permette di costruire tabelle “visive” senza usare HTML o librerie esterne. Anche se oggi molte interfacce sono web o JSON, la formattazione testuale resta importante per log, CLI, debug e report.

Esempio pratico di utilizzo

Supponiamo di voler creare un codice ordine con lunghezza fissa. Se hai il numero 78, puoi trasformarlo in ORD-000078. Questo è utile in e-commerce, sistemi gestionali e applicazioni interne dove l’uniformità dei codici migliora la lettura e l’ordinamento.

Un altro caso frequente è la stampa di dati in colonne. Se non usi padding, i testi di lunghezza diversa rompono l’allineamento. Con str_pad(), invece, ogni colonna occupa uno spazio coerente.

Limite importante da conoscere

str_pad() lavora in modo corretto con stringhe semplici, ma non è pensata per gestire in modo preciso la larghezza visiva dei caratteri multibyte come alcune lettere accentate o simboli Unicode complessi. Se devi formattare testi UTF-8 molto variabili, potresti aver bisogno di funzioni multibyte o di una logica più avanzata.

Best practice

  • Usa str_pad() per output testuali, non per logiche di business: il padding serve alla presentazione, non alla validazione dei dati.
  • Preferisci larghezze coerenti: definisci colonne con dimensioni stabili per mantenere leggibile il risultato.
  • Allinea i dati numerici a destra: è più naturale per prezzi, quantità e codici.
  • Allinea i testi a sinistra: nomi, descrizioni e etichette risultano più leggibili.
  • Non abusare di padding troppo lungo: se la stringa originale supera la lunghezza richiesta, PHP non la tronca. Questo significa che il layout può rompersi se non prevedi casi lunghi.
  • Controlla i dati in ingresso: un padding ben fatto non sostituisce la pulizia o la normalizzazione delle informazioni.
  • Per applicazioni internazionali, verifica i testi UTF-8: il comportamento visivo può variare con caratteri speciali o emoji.

Un buon criterio pratico è questo: usa str_pad() quando vuoi migliorare la presentazione di dati già validi. Se invece devi correggere o interpretare i contenuti, servono altre funzioni o una fase di normalizzazione dedicata.

Riepilogo

str_pad() è una funzione semplice ma molto utile nella gestione delle stringhe in PHP. Ti permette di:

  • allineare testi e numeri;
  • creare output ordinati e leggibili;
  • generare codici con zeri iniziali;
  • costruire tabelle testuali per console o report;
  • migliorare la qualità visiva di script e strumenti interni.

Il vantaggio principale è la sua immediatezza: con poche righe di codice ottieni un risultato chiaro, professionale e facilmente manutenibile. Per uno sviluppatore PHP intermedio, conoscere bene str_pad() significa avere uno strumento in più per produrre output puliti senza complicare il codice.

Approfondisci con risorse ufficiali

  • Documentazione PHP su str_pad(): https://www.php.net/manual/it/function.str-pad.php
  • Documentazione PHP su number_format(): https://www.php.net/manual/it/function.number-format.php
  • Documentazione PHP su str_repeat(): https://www.php.net/manual/it/function.str-repeat.php
  • Manuale PHP generale sulle stringhe: https://www.php.net/manual/it/book.strings.php

Se vuoi, nel prossimo tutorial posso mostrarti un altro sotto-argomento pratico sulla gestione delle stringhe in PHP, ad esempio la formattazione di testi con sprintf() oppure la gestione corretta delle stringhe multibyte con mb_*().

SHARE