(PHP 4, PHP 5, PHP 7)
substr — Retourne un segment de chaîne
$string
, int $start
[, int $length
] )
Retourne le segment de string
défini par
start
et length
.
string
La chaîne d'entrée. Doit comporter au moins un caractère.
start
Si start
est positif, la chaîne
retournée commencera au caractère numéro start
,
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 start
est négatif, la chaîne retournée
commencera au caractère numéro start
à compter
de la fin de la chaîne string
.
Si string
est plus petit que
start
caractères de long, FALSE
sera retourné.
Exemple #1 Exemple de start
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
start
(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 start
représente
une position hors de la chaîne, FALSE
sera retournée.
Si le paramètre length
est fourni
et vaut 0, FALSE
ou NULL
, une chaîne
vide sera retournée.
Si length
est omis, la sous chaine commençant
à partir de start
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 false
$rest = substr("abcdef", -3, -1); // retourne "de"
?>
Retourne la partie extraite de la chaîne string
;
ou FALSE
si une erreur survient ou une chaine vide.
Version | Description |
---|---|
7.0.0 |
Si string a une longueur égale à
start caractères, une chaîne vide
sera retournée. Avant cette version, FALSE était retourné dans ce cas.
|
5.2.2 - 5.2.6 |
Si start est hors de la chaine, false est retourné.
Les autres versions récupèrent la chaîne depuis le début.
|
Exemple #3 Exemple avec substr()
<?php
echo substr('abcdef', 1); // bcdef
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;
?>
Résultat de l'exemple ci-dessus en PHP 7 :
1) 'pe' 2) '54' 3) 'gr' 4) '1' 5) '' 6) '' 7) '1200'
Résultat de l'exemple ci-dessus en PHP 5 :
1) 'pe' 2) '54' 3) 'gr' 4) '1' 5) false 6) false 7) '1200'
Retourne FALSE
si une erreur survient.
<?php
var_dump(substr('a', 2)); // bool(false)
?>