Fonctions pour les chaînes de caractères
PHP offre une variété de fonctions pour manipuler les chaînes de caractères. Certaines ont déjà été montrées dans le chapitre précédent.
Voici quelques unes des fonctions.
Warning: Les exemples sont montrés à titre indicatif et ne sont pas exhaustif. Veuillez consulter la documentation officielle..
strlen() et mb_strlen()
La fonction strlen() retourne la longueur d'une chaîne de caractères.
<?php
$chaine = "Bientot";
echo strlen($chaine); // 7 caractères mais affiche 7
$chaine = "Bientôt";
echo strlen($chaine); // 7 caractères mais affiche 8
Warning: La fonction
strlen()renvoie la longueur en octets et non le nombre réel de caractères.
L'(emoji) est codé en UTF-8 sur 4 octets.
La fonction mb_strlen() est fournie par l’extension mbstring et permet de compter correctement les caractères multioctets, comme les accents ou les emojis.
<?php
echo mb_strlen("Hello"); // affiche 5
echo mb_strlen("👍"); // affiche 1
echo mb_strlen("Hello👍"); // affiche 6
strpos()
La fonction strpos() trouve la position de la première occurrence d'une sous-chaîne dans une chaîne de caractères.
<?php
$chaine = "Bonjour tout le monde";
$position = strpos($chaine, "tout");
echo $position; // Affiche 8
str_replace()
La fonction str_replace() remplace toutes les occurrences d'une chaîne de caractères par une autre chaîne.
<?php
$chaine = "Bonjour tout le monde";
$nouvelleChaine = str_replace("tout", "à", $chaine);
echo $nouvelleChaine; // Affiche "Bonjour à le monde"
substr()
La fonction substr() retourne une partie d'une chaîne de caractères.
<?php
$chaine = "Bonjour tout le monde";
$sousChaine = substr($chaine, 8, 4);
echo $sousChaine; // Affiche "tout"
strtolower() et strtoupper()
Les fonctions strtolower() et strtoupper() convertissent une chaîne de caractères en minuscules ou en majuscules, respectivement.
<?php
$chaine = "Bonjour";
echo strtolower($chaine); // Affiche "bonjour"
echo strtoupper($chaine); // Affiche "BONJOUR"
Attention ! La fonction strtolower() n'utilise pas l'Unicode donc tous les caractères comme é et ç ne seront pas mis en minuscules. Il faut utiliser mb_strtolower().
Attention ! La fonction strtoupper() n'utilise pas l'Unicode donc tous les caractères comme é et ç ne seront pas mis en majuscules. Il faut utiliser mb_strtoupper().
La fonction ucfirst() permet de mettre le premier caractère en majuscule d'une chaîne. Attention elle n'utilise pas l'Unicode.
La fonction lcfirst() permet de mettre le premier caractère en minuscule d'une chaîne. Attention elle n'utilise pas l'Unicode.
La fonction ucwords() permet de mettre en majuscule la première lettre de tous les mots. Attention elle n'utilise pas l'Unicode.
str_ends_with()
La fonction str_ends_with() permet de déterminer si une chaîne de caractères finit par une autre chaîne de caractères.
Elle renvoie true si la chaîne finit par la portion recherchée. La recherche est sensible à la casse.
<?php
$chaine = 'Liège est une ville très festive !';
var_dump(str_ends_with($chaine, 'festive')); // bool(false)
var_dump(str_ends_with($chaine, '!')); // bool(true)
str_starts_with()
La fonction str_starts_with() permet de déterminer si une chaîne de caractères commence par une autre chaîne de caractères.
Elle renvoie true si la chaîne finit par la portion recherchée. La recherche est sensible à la casse.
<?php
$chaine = 'Liège est une ville très festive !';
var_dump(str_starts_with($chaine, 'festive')); // bool(false)
var_dump(str_starts_with($chaine, 'Liège')); // bool(true)
str_contains()
La fonction str_contains() permet de déterminer si une chaîne de caractères est incluse dans la chaîne de caractères.
Elle renvoie true si la chaîne s'y trouve.. La recherche est insensible à la casse.
<?php
$chaine = 'Liège est une ville très festive !';
var_dump(str_contains($chaine, 'liège')); // bool(false)
var_dump(str_contains($chaine, 'Liège')); // bool(true)
trim, rtrim, ltrim
Fonction permettant de supprimer les espaces en début (ltrim), en fin (rtrim) ou en début et fin de chaine de caractères (trim).
Warning: Doit être utilisé systématiquement lorsqu'on récupère des données dans un formulaire !.
<?php
$chaine = ' Une chaine avec espaces ';
echo "<pre>";
echo $chaine, "! <br>"; // Une chaine avec espaces !
echo trim($chaine), "! <br>"; // Une chaine avec espaces!
echo ltrim($chaine), "! <br>"; // Une chaine avec espaces !
echo rtrim($chaichainene1), "! <br>"; // Une chaine avec espaces!
echo "</pre>";
Depuis PHP 8.4, des fonctions permettent de gérer les espaces et caractères invisibles en Unicode (mb_trim(), mb_rtrim(), mb_ltrim())
explode()
En fonction du séparateur mentionné, découpe la chaine en plusieurs morceaux et retoure un tableau.
<?php
$phrase = "PHP est rapide et flexible";
$mots = explode(" ", $phrase);
var_dump($mots);
/*
array (size=5)
0 => string 'PHP' (length=3)
1 => string 'est' (length=3)
2 => string 'rapide' (length=6)
3 => string 'et' (length=2)
4 => string 'flexible' (length=8)
*/
Note: La fonction
implode()permet de faire l'inverse => rassembler les éléments d'un tableau en une chaine de caractères.