# Comment utiliser substr en PHP

Utilisation de substr en PHP

La fonction “substr” en PHP est utilisée pour extraire une partie d’une chaîne de caractères en fonction d’une position de départ et optionellement d’une longueur. Voici la syntaxe de base de la fonction substr en PHP :

substr(string $chaine, int $indexDepart, ?int $length = null): string

$chaine : La chaîne de caractères sur laquelle on veut extraire une sous-chaîne.
$indexDepart : La position à partir de laquelle extraire la sous-chaîne. Si la valeur est négative, elle sera comptée à partir de la fin de la chaîne.
$longueur (facultative) : La longueur de la sous-chaîne à extraire. Si la valeur est omise, la sous-chaîne sera extraite à partir de la position de départ jusqu’à la fin de la chaîne.

La fonction substr() renvoie une sous-chaîne extraite de la chaîne source ou une chaîne vide ("") si elle ne peut pas extraire la sous-chaîne demandée. Par exemple quand l’index de départ est plus grand que la longueur de la chaîne.

Voici un exemple d’utilisation de la fonction substr en PHP :

$chaine = "Hello world!";
$sous_chaine = substr($chaine, 0, 5); // extrait les 5 premiers caractères de la chaîne
echo $sous_chaine; // affiche "Hello"

Cas d’utilisation de substr

Extraire une chaîne de caractère à partir d’un index spécifié

Voici un exemple d’extraction d’une sous-chaîne à partir d’une chaîne en commençant à l’index spécifié et en allant jusqu’à la fin de la chaîne en utilisant la fonction substr() :

$chaine = "Hello world!";
$sous_chaine = substr($chaine,  5);
echo $sous_chaine; // affiche "world!"

Avec une longueur positive :

$chaine = "Hello world!";
$sous_chaine = substr($chaine,  5, 6);
echo $sous_chaine; // affiche "world"

Avec une longueur négative :

$chaine = "Hello world!";
$sous_chaine = substr($chaine,  5, -1);
echo $sous_chaine; // affiche "world"

En mettant une longueur négative, on part sur une longueur qui va jusqu’à la fin de la chaîne à laquelle on retire n éléments, dans le cas ci-dessus la longueur couvre la chaîne “world!” et on retire un élement pour obtenir “world”.

Extraire une chaîne de caractère à partir de la fin de la chaîne

Pour extraire une sous-chaîne à partir de la fin d’une chaîne, il faut spécifier une valeur $indexDepart négative. Voici un exemple d’extraction d’une sous-chaîne à partir de la fin de la chaîne :

$chaine = "Hello world!";
$sous_chaine = substr($chaine,-6);
echo $sous_chaine; // affiche "world!"

Extraction d’une chaîne multi-octets non ASCII

Pour extraire une sous-chaîne d’une chaîne contenant des caractères non-ASCII, il est recommandé d’utiliser la fonction mb_substr (mb pour multibyte). Cette fonction est similaire à substr(), à la différence qu’elle prend un argument supplémentaire pour spécifier l’encodage de la chaîne.

$string = "こんにちは、世界!";
$substring = mb_substr($string, 1, 2, "UTF-8");

echo $substring; // Sortie : "んに"