PHP, gérer les chaînes de caractères

Même si la chaîne de caractères sera certainement le type de variables que vous serez amenés le plus à utiliser, elle n’en est pas moins la plus simple.

Dans un article précédent, nous avons vu les différents types de variables que nous pouvons rencontrer (voir cet article), la chaîne de caractères (string) est certainement une de celles que vous croiserez le plus. Vous comprendrez rapidement que pour un site, une grande majorité des variables utilisées sont de ce type :

  • pseudo
  • adresse mail
  • avis

Elle se présentera sous différentes formes avec des guillemets simples ou doubles et/ou avec des antislash :

$string = "Je suis une chaîne de caractère";
$string = 'c\'est une autre chaîne de caractères';

Et pour l’afficher, vous pouvez passer par un echo ou print : echo $string;.

La chaîne de caractères est aussi un tableau (même si cette particularité sera peu utilisée), pour l’exemple :

$mail = "mon-adresse-mail@gmail.com";
echo $mail['1];
// affichera la lettre "o"

Comme tout tableau indexé, l’index commence à 0.

Manipulation de chaîne de caractères

Les variables de type string, comme toute les variables sont faites pour être manipuler. Cependant les string sont bien plus complexe à traiter que les autres variables.

Pour nous aider, dans PHP, il existe un nombre important de fonctions qui vont nous simplifier la vie. Vous pouvez en avoir une liste sur cette page.

Nous allons en voir quelques-unes qui me paraissent les plus courantes (bien-entendu, ce n’est qu’un avis personnel).

La mise en forme avec php

Mettre en majuscule, en minuscule ou la première lettre en majuscule

  • strtolower() pour mettre en minuscule
  • stroupper() pour mettre en majuscule
  • ucfirst() pour mettre la première lettre en majuscule
$string = "voiCi un texte Comme on en fait plus";
echo "texte en minuscule :"."\n";
echo strtolower($string)."\n";
echo "texte en majuscule :"."\n";
echo strtoupper($string)."\n";
echo "Première lettre en majuscule :"."\n";
echo ucfirst(strtolower($string))."\n"

Rechercher, extraire, remplacer dans une chaîne de caractères

Voici d’autres fonctions très utiles pour manipuler les chaîne de caractères.

  • strpos() permet de rechercher la position d’une chaîne de caractères
  • strstr() permet d’afficher les caractères à partir d’une chaîne de caractères
  • strlen() permet d’obtenir le nombre de caractères contenu dans une chaîne
  • substr() permet d’extraire une partie d’une chaîne de caractère en indiquant le début et la fin
  • str_replace() permet de remplacer une chaîne de caractères par une autre
  • explode() permet de séparer avec un caractère et retourne les éléments séparés dans un tableau

Voici un petit exemple de ce que vous pouvez faire, n’hésitez pas à recopier et exécuter le code :

$message = "Votre adresse mail est MAIL";
$mail = "mon-adresse-mail@gmail.com";
echo "Position de l'arobase : "."\n";
echo strpos($mail,"@")."\n"."\n";
echo "Récupération du domaine de messagerie :"."\n";
echo strstr($mail,"@")."\n"."\n";
echo "Récupération de l'identifiant du mail : "."\n";
echo substr($mail, 0, strpos($mail,"@"))."\n"."\n";
echo "Remplacement dans une chaîne de caractères : "."\n";
echo str_replace("MAIL", $mail, $message)."\n"."\n";
echo "Compter le nombre de caractères : "."\n";
echo strlen(str_replace("MAIL", $mail, $message))."\n"."\n";
echo "Récupérer tous les mots dans un tableau :"."\n";
var_dump(explode(" ",str_replace("MAIL", $mail, $message) ));

var_dump() permet d’obtenir des informations sur ce qui est passé en argument, très utile pour connaître le type et la valeur de l’argument.

Conclusion

Les chaînes de caractères ne sont pas plus compliquées que cela, les fonctions peuvent rapidement montrer leurs limites, les expressions régulières peuvent être une très bonne solution.

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.