formations / php / les-chaines-de-caracteres
Les chaînes de caractères
Manipuler les chaînes de caractères est important afin de pouvoir homogénéiser les données dans une table dans une base de données ou encore lors d'un affichage dynamique lors de l'affichage d'une page web.
Manipuler les chaînes de caractères
En PHP il existe de nombreuses fonctions natives pour manipules des chaînes de caractères. Nous allons dans ce cours en aborder les principales.
Les principales fonctions natives
Strlen
La fonction strlen de php permet de connaître la longueur d'une chaîne de caractères, son utilisation est simple.
<?php
// ====================================================== //
// ======================= STRLEN ======================= //
// ====================================================== //
$phrase = "Bonjour et bienvenue dans ce cours de PHP.";
$longueur = strlen($phrase);
echo $longueur; // Affiche : 41
?>
Strpos
La fonction native strpos permet de rechercher une chaîne dans une chaîne. Cette fonction renvoie l'index de la première occurence recherchée ou false si la chaîne n'est pas identifiée dans la source.
<?php
// ====================================================== //
// ======================= STRPOS ======================= //
// ====================================================== //
$phrase = "Bonjour et bienvenue dans ce cours de PHP.";
$position = strpos($phrase, "PHP");
echo $position; // Affiche : 38
echo "<br>";
?>
Substr
La fonction substr permet d'extraire une chaîne de caractères d'une chaîne source.
<?php
$phrase = "Bonjour et bienvenue dans ce cours de PHP.";
$resultat = substr($phrase, 10, 9); // $resultat = "bienvenue"
?>
Str_replace
Comme son nom l'indique, la fonction native str_replace remplace une occurence de chaîne de caractères dans une chaîne source. Nous allons ici remplacer le mot "pomme" par "poire".
<?php
// ====================================================== //
// ===================== STR_REPLACE ==================== //
// ====================================================== //
$phrase = "Les pommes comme de nombreux fruits sont excellentes pour la santé.";
$nouvellePhrase = str_replace("pommes", "poires", $phrase);
echo $nouvellePhrase; // Affiche : Les poires comme de nombreux fruits sont excellentes pour la santé.
echo "<br>";
?>
Strtoupper et strtolower
Les deux fonctions natives strtoupper et strtolower permettent de manipuler une chaîne de caractères pour les passer soit en majuscule soit en minuscule. Il est à noter que dans le cas de l'utilisation de strtoupper avec des caractères accentués, ces derniers ne seront pas convertis ce qui produire des effets indésirables à l'affichage.
<?php
// ====================================================== //
// =============== STRTOUPPER & STRTOLOWER ============== //
// ====================================================== //
$mot1 = "Bonjour";
$mot2 = "Bienvenue";
$mot3 = "étincelle";
echo strtoupper($mot1); // Affiche : BONJOUR
echo "<br>";
echo strtolower($mot2); // Affiche : bienvenue
echo "<br>";
echo strtoupper($mot3); // Affiche : éTINCELLE
?>
Ucfist
La fonction native de php ucfirst permet de mette la permière lettre d'une phrase en majuscule, ce qui peut être pratique pour des titres par exemple. Par contre cette fonction native comporte les mêmes limitations que les fonctions strtolower et strtoupper en ne prenant pas en charge les caractères accentués.
<?php
// ====================================================== //
// ======================= UCFIRST ====================== //
// ====================================================== //
$mot1 = "bonjour";
$mot2 = "étincelle";
echo ucfirst($mot1); // Affiche : Bonjour
echo "<br>";
echo ucfirst($mot2); // Affiche : éTINCELLE
echo "<br>";
?>
Trim
La fonction native trim présente un intérêt notamment pour la gestion des identifiant et du mots de passe lors de la soumission d'un formulaire d'identification en supprimant les espaces se trouvant au début ou à la fin de la chaîne, ce qui advient souvant par des copier/coller depuis un mail ou tout autre documents.
<?php
// ====================================================== //
// ======================== TRIM ======================== //
// ====================================================== //
$mot1 = " Bonjour ";
echo $mot1; // Affiche : Bonjour avec les espaces avant et après
echo "<br>";
echo trim($mot1); // Affiche : Bonjour sans les espaces avant et après
?>
Explode et implode
Les deux fonctions natives explode et implode permettent, pour l'une de casser un chaine de caractère par rapport à un caractère donné ou au contraire de recréér une chaîne d'après un tableau. Mais voyons cela en pratique :
<?php
// ====================================================== //
// ================== IMPLODE & EXPLODE ================= //
// ====================================================== //
$phrase = "Bonjour à tous, j'espère que vous allez bien.";
$mots = explode(",", $phrase);// Crée un tableau avec les mots de la phrase en utilisant la virgule comme séparateur
print_r($mots); // Affiche le tableau
echo "<br>";
$phrase2 = implode(", ", $mots); // Crée une phrase avec les mots du tableau en utilisant l'espace comme séparateur
echo $phrase2; // Affiche : Bonjour à tous j'espère que vous allez bien.
?>
Mb_case_convert
Pour finir, la fonction native mb_case_convert présente une alternative aux limitations constantées lors de l'utilisation de ucfirst, ou encore strtoupper qui ne permettent pas la prise en charge des caractères accentués, ce qui pour de nombreuses langues européenes représeante tout de même un problème majeur.
La fonction mb_case_convert s'utilise avec des modes d'exécutions qui peuvent, au delà de la prise en charge de caractères accentués, offirir des conversions intérressantes.
La fonction mb_case_convert s'utilise de la manière suivante :
<?php
// ====================================================== //
// =================== MB_CONVERT_CASE ================== //
// ====================================================== //
$prenom = "émile";
$nom = "dupont";
$prenom = mb_convert_case($prenom, MB_CASE_TITLE, "UTF-8");
$nom = mb_convert_case($nom, MB_CASE_UPPER, "UTF-8");
echo $prenom . " " . $nom; // Affiche : Émile DUPONT
echo "<br>";
?>
Comme dans le code précédent, la fonction native mb_case_convert attend en arguments, la chaîne à traiter mais également le mode de traitement.
Parmi ces modes on peut identifier :
- MB_CASE_UPPER : Ce mode converti la chaîne vouliue en majuscule y compris les caractères accentués.
- MB_CASE_LOWER : Ce mode converti la chaîne cible en minuscule.
- MB_CASE_TITLE : Ce mode très intéressant permet de mettre tous les premières lettre d'un mot en majuscule, incluant les caracères accentuées, ce qui est très pratique pour les prénoms ou noms composés. Il faut que ce mode intégre dans sa conversion l'analuse des "-" de sorte que le prénom composé "jean-pierre" deviendra bien "Jean-Pierre".
Voila pour un apperçu des principales fonctions natives de PHP pour manipuler les chaînes de caractères. Nous sommes bientôt prêt à mettre tous ces savoirs en pratique à travers la réalisation d'un excercice pratique mais ils nous reste deux ou trois savoirs à appréhender, comme par exemple la gestion des dates qui n'est pas un problème simple.
Tutos du jour
MySql - Les requêtes de tables
Les requêtes de table sont un élément fondamental de la programmation SQL.
Voir le tutoPHP & les formulaires HTML
Les formulaires HTML sont des éléments importants du développement web.
Voir le tuto