Aller au contenu

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.

Référence officielle >>

<?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.

<?php
$chaine = "Hello😁";
echo strlen($chaine); // 5 caractères et un emoji mais affiche 9

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.

Référence officielle >>

mb_strlen
<?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.

Référence officielle >>

<?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.

Référence officielle >>

<?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.

Référence officielle >>

<?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()

Référence officielle >>

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.

str_ends_with
<?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()

Référence officielle >>

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.

str_starts_with
<?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()

Référence officielle >>

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.

str_contains
<?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 !.

espace
<?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.

Référence officielle >>

explode
<?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.