Bonsoir,
Si la roue n'existe pas, il faut l'inventer.
Je vais te proposer une méthode, parmi tant d'autres, mais elle me semble simple.
On va traiter nôtre chaine de caractères comme un tableau et considérer que chaque caractère est le contenu d'un poste de ce tableau.
Regarde les commentaires et essaie de comprendre ce qui se passe, si tu as des questions, n'hésite pas à les poser.
Ne te contente pas d'un copier/coller, ça ne te servirait à rien.
<?php
$myIntialString = 'abcde';
// Initialisation de la chaine finale
$myFinalString = '';
// Le caractère que l'on veut insérer
$charSeparator = ' ';
// Calcul de la longueur de la chaine
$stringLength = strlen($myIntialString);
// On récupère le premier caractère
$myFinalString .= $myIntialString[0];
// On parcour la chaine initiale en commençant au second caractère
for($i = 1; $i < $stringLength; $i++) {
// On concatène à la chaine déjà construite le séparateur et le nouveau caractère
$myFinalString .= $charSeparator . $myIntialString[$i];
}
// On affiche le résultat
echo $myFinalString;
?>
Ce code fait ce qu'on souhaite, il ajoute un espace entre chaque caractère.
Mais il a plusieurs inconvénients.
- On ne peut l'utiliser qu'une fois.
- seul l'espace peut être utilisé comme séparateur de caractères.
On va donc faire en sorte que nôtre travail soit réutilisable et plus souple (que je puisse utiliser un autre séparateur)
Pour ce là on va transformer ce code en fonction avec comme séparateur par défaut l'espace.
<?php
function separe_caracteres($intialString, $charSeparator = ' ') {
// Initialisation de la chaine finale
$finalString = '';
// Calcul de la longueur de la chaine
$stringLength = strlen($intialString);
// On récupère le premier caractère
$finalString .= $intialString[0];
// On parcour la chaine initiale en commençant au second caractère
for($i = 1; $i < $stringLength; $i++) {
// On concatène à la chaine déjà construite le séparateur et le nouveau caractère
$finalString .= $charSeparator . $intialString[$i];
}
// On retourne le résultat
return ($finalString);
}
/*
* Tests de la fonction
*/
// Appel de la fonction sans le second paramètre
$myFinalString = separe_caracteres('abcde');
echo $myFinalString . '<br />';
// Appel de la fonction avec le second paramètre qui n'est pas forcément un seul caractère
$myFinalString = separe_caracteres('abcde', '#-#');
echo $myFinalString . '<br />';
?>
L'exécution me donnera
D'autres améliorations peuvent être apportées, comme séparer tous les X caractères.
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.
A. Einstein