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'

Vous aimeriez progresser en PHP ? Mais vous ne savez pas comment vous y prendre ?

S'entraîner pour progresser en PHP

Mon programme "S'entraîner pour progresser en PHP" est disponible. Il vous permettra de recevoir chaque semaine un kata de code directement dans votre boîte mail, ainsi que des aides à la réalisation, des vidéos explicatives et des défis supplémentaires.

Reçois dès maintenant un kata gratuit en cliquant sur le bouton ci-dessous.