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.
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*_**_'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'J’ai préparé un guide pratique avec une dizaine de conseils essentiels pour poser de bonnes bases.
👉 Bonnes pratiques, astuces spécifiques à PHP, exemples concrets… tout y est pour prendre de suite les bonnes habitudes.