substr

(PHP 4, PHP 5, PHP 7, PHP 8)

substrRetourne un segment de chaîne

Description

substr ( string $string , int $offset , int|null $length = null ) : string

Retourne le segment de string défini par offset et length.

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, false 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", -31); // 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, false ou null, une chaîne vide sera retournée.

Si length est omis, 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 false
$rest substr("abcdef", -3, -1); // retourne "de"
?>

Valeurs de retour

Retourne la partie extraite de la chaîne string; ou false si une erreur survient ou une chaine vide.

Historique

Version Description
8.0.0 length est désormais nullable.
8.0.0 Cette fonction retourne une chaîne vide où auparavant elle retournait false

Exemples

Exemple #3 Exemple avec substr()

<?php
echo substr('abcdef'1);     // bcdef
echo substr('abcdef'13);  // bcd
echo substr('abcdef'04);  // abcd
echo substr('abcdef'08);  // abcdef
echo substr('abcdef', -11); // 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"02), true).PHP_EOL;
echo 
"2) ".var_export(substr(5432102), true).PHP_EOL;
echo 
"3) ".var_export(substr(new apple(), 02), true).PHP_EOL;
echo 
"4) ".var_export(substr(true01), true).PHP_EOL;
echo 
"5) ".var_export(substr(false01), true).PHP_EOL;
echo 
"6) ".var_export(substr(""01), true).PHP_EOL;
echo 
"7) ".var_export(substr(1.2e304), 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'

Erreurs / Exceptions

Retourne false si une erreur survient.

<?php
var_dump
(substr('a'2)); // bool(false)
?>

Voir aussi