(PHP 4, PHP 5, PHP 7, PHP 8)
substr — Retourne un segment de chaîne
Description
substr(string
$string
, int
$offset
, ?int
$length
=
null
): string
Liste de paramètres
-
string
-
La chaîne de caractères d'entrée.
-
offset
-
Si offset
est positif, la chaîne
retournée commencera au caractère numéro offset
,
dans la chaîne string
. Le premier caractère
est numéroté zéro. En effet, dans la chaîne 'abcdef
',
le caractère à la position 0
est 'a
',
le caractère à la position 2
est 'c
',
et ainsi de suite.
Si offset
est négatif, la chaîne retournée
commencera au caractère numéro offset
à compter
de la fin de la chaîne string
.
Si string
est plus petit que
offset
caractères de long, une chaîne vide sera retourné.
Exemple #1 Exemple de offset
négatif
<?php
$rest = substr("abcdef", -1); // retourne "f"
$rest = substr("abcdef", -2); // retourne "ef"
$rest = substr("abcdef", -3, 1); // retourne "d"
?>
-
length
-
Si length
est fourni et est positif,
la chaîne retournée contiendra au plus length
caractères, en commençant à partir du caractère
offset
(en fonction de la taille de la chaîne
string
).
Si length
est fourni et négatif, alors le même
nombre de caractères sera omis, en partant de la fin de la chaîne
string
. Si offset
représente
une position hors de la chaîne, false
sera retournée.
Si le paramètre length
est fourni
et vaut 0
, une chaîne vide sera retournée.
Si length
est omis ou null
, la sous chaine commençant
à partir de offset
jusqu'à la fin sera retournée.
Exemple #2 Utilisation d'une valeur négative pour length
<?php
$rest = substr("abcdef", 0, -1); // retourne "abcde"
$rest = substr("abcdef", 2, -1); // retourne "cde"
$rest = substr("abcdef", 4, -4); // retourne ""; antérieur à PHP 8.0.0, false était retourné
$rest = substr("abcdef", -3, -1); // retourne "de"
?>
Valeurs de retour
Retourne la partie extraite de la chaîne string
,
ou une chaine vide.
Historique
Exemples
Exemple #3 Exemple avec substr()
<?php
echo substr('abcdef', 1); // bcdef
echo substr("abcdef", 1, null); // bcdef; antérieur à PHP 8.0.0, une chaîne vide était retournée
echo substr('abcdef', 1, 3); // bcd
echo substr('abcdef', 0, 4); // abcd
echo substr('abcdef', 0, 8); // abcdef
echo substr('abcdef', -1, 1); // f
// Accéder à un simple caractère dans une chaîne
// peut également être réalisé en utilisant des crochets
$string = 'abcdef';
echo $string[0]; // a
echo $string[3]; // d
echo $string[strlen($string)-1]; // f
?>
Exemple #4 Comportement du cast avec substr()
<?php
class apple {
public function __toString() {
return "green";
}
}
echo "1) ".var_export(substr("pear", 0, 2), true).PHP_EOL;
echo "2) ".var_export(substr(54321, 0, 2), true).PHP_EOL;
echo "3) ".var_export(substr(new apple(), 0, 2), true).PHP_EOL;
echo "4) ".var_export(substr(true, 0, 1), true).PHP_EOL;
echo "5) ".var_export(substr(false, 0, 1), true).PHP_EOL;
echo "6) ".var_export(substr("", 0, 1), true).PHP_EOL;
echo "7) ".var_export(substr(1.2e3, 0, 4), true).PHP_EOL;
?>
L'exemple ci-dessus va afficher :
1) 'pe'
2) '54'
3) 'gr'
4) '1'
5) ''
6) ''
7) '1200'
Exemple #5 Intervalle de Caractères Invalide
Si une intervalle de caractères invalide est demandé,
substr() retourne une chaîne vide à partir de PHP 8.0.0;
auparavant false
était retourné à la place.
<?php
var_dump(substr('a', 2));
?>
Résultat de l'exemple ci-dessus en PHP 8 :
string(0) ""
Résultat de l'exemple ci-dessus en PHP 7 :
bool(false)
Voir aussi
- strrchr() - Trouve la dernière occurrence d'un caractère dans une chaîne
- substr_replace() - Remplace un segment dans une chaîne
- preg_match() - Effectue une recherche de correspondance avec une expression rationnelle standard
- trim() - Supprime les espaces (ou d'autres caractères) en début et fin de chaîne
- mb_substr() - Lit une sous-chaîne
- wordwrap() - Effectue la césure d'une chaîne
- Accès et modification d'une chaîne, par caractère