Compléter une chaîne avec un caractère

Il arrive dans certains cas que l'on veuille formater des chaînes pour qu'elles aient toute la même taille. Exemple : '001, '002', '003', '010'.

Et il met déjà arriver de voir ce genre de code :

$var = '1';
$length = strlen($var);
for ($i = $length; $i < 3; $i++) {
    $var = '0'.$var;
}

// $var => '001'

Autant dire que ce code est assez barbare.

PHP à la rescousse

Savez-vous qu'il existe une méthode spécifique pour faire ce traitement ?

$var = '1';
$var = str_pad($var, 3, '0', STR_PAD_LEFT);

str_pad permet de "rembourrer" une chaîne avec une autre, soit à droite (par défaut), soit à gauche, soit les deux.

$var = '1';
$var = str_pad($var, 3, '0');

// $var => '100'
$var = '1';
$var = str_pad($var, 3, '0', STR_PAD_BOTH);

// $var => '010'

Cette fonction peut aussi compléter avec plusieurs caractères (la chaîne de remplacement sera tronquée si on arrive à la taille voulue)

$var = '1';
$var = str_pad($var, 6, '*_*');

// $var => '1*_**_'

Et si je veux simplement répéter la même chaîne un certain nombre de fois

Si votre objectif est de répéter la chaîne d'origine, il y a une autre méthode : str_repeat.

$var = '1';
$var = str_repeat($var, 3);

// $var => '111'

Ca marche aussi avec une chaîne qui a plus d'un caractère :

$var = 'abc';
$var = str_repeat($var, 3);

// $var => 'abcabcabc'

Tu aimerais progresser en PHP ? Mais tu ne sais pas comment t'y prendre ?

S'entraîner pour progresser en PHP

Mon programme "S'entraîner pour progresser en PHP" a ouvert ses portes. Il te permettra de recevoir chaque semaine un kata de code directement dans ta boîte mail, ainsi que des aides à la réalisation, des vidéos explicatives, voire des live coding et de la review.

Si tu es intéressé(e), clique sur le bouton ci-dessous pour avoir plus d'informations et nous rejoindre !