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" va bientôt ouvrir 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 t'inscrire afin d'être prévenu(e) de l'ouverture de ce programme.