Ce face str_pad
str_pad lungește un text până ajunge la lungimea dorită. Implicit adaugă spații la dreapta. Cu STR_PAD_LEFT adaugă la stânga, iar cu STR_PAD_BOTH împarte completarea între cele două părți.
Este folosită des pentru numere cu zerouri în față (0042) și pentru coloane aliniate în text simplu. Dacă textul este deja mai lung decât $length, este returnat neschimbat, nu tăiat.
Lungimea se măsoară în octeți. Pentru texte cu diacritice folosește mb_str_pad (PHP 8.3+).
Parametri
| Parametru | Descriere |
|---|---|
$string |
Textul de completat. |
$length |
Lungimea finală dorită (totală, nu câte caractere se adaugă). |
$pad_string |
Opțional. Caracterele folosite la completare. Implicit un spațiu. Nu poate fi text gol. |
$pad_type |
Opțional. STR_PAD_RIGHT (implicit), STR_PAD_LEFT sau STR_PAD_BOTH. |
Ce returnează
Textul completat.
Exemple
Exemplul 1: Numere de factură cu zerouri în față
<?php
foreach ([7, 42, 1024] as $numar) {
echo "Factura nr. " . str_pad($numar, 5, "0", STR_PAD_LEFT) . "\n";
}
Rezultat
Factura nr. 00007
Factura nr. 00042
Factura nr. 01024
Exemplul 2: Coloane aliniate în text simplu
Numele produselor sunt completate cu puncte până la 12 caractere, iar prețurile cu spații la stânga, ca să fie aliniate la dreapta. Observă că „Pâine” primește un punct mai puțin: litera „â” ocupă 2 octeți.
<?php
$produse = ["Pâine" => 5, "Lapte" => 8.5, "Cafea" => 32];
foreach ($produse as $nume => $pret) {
echo str_pad($nume, 12, ".") . str_pad($pret, 6, " ", STR_PAD_LEFT) . " lei\n";
}
Rezultat
Pâine...... 5 lei
Lapte....... 8.5 lei
Cafea....... 32 lei
Exemplul 3: Completare pe ambele părți
<?php
echo str_pad("MENIU", 15, "*", STR_PAD_BOTH);
Rezultat
*****MENIU*****
Greșeli frecvente
- Crezi că
$lengthînseamnă câte caractere se adaugă. Este lungimea totală a rezultatului:str_pad("7", 3, "0", STR_PAD_LEFT)dă007. - Completezi texte cu diacritice și coloanele ies strâmbe.
str_padnumără octeți: „Pâine” are 6 octeți, nu 5. Foloseștemb_str_pad.
Comenzi înrudite
mb_str_pad: Completează un text până la o lungime dată, numărând corect caracterele cu diacritice.sprintf: Construiește un text formatat după un șablon și îl returnează, fără să îl afișeze.str_repeat: Repetă un text de un anumit număr de ori.