(PHP 4, PHP 5, PHP 7)
substr — Возвращает подстроку
Описание
$string
, int $start
[, int $length
] )Возвращает подстроку строки string
, начинающейся с start
символа по счету и длиной length
символов.
string
-
Входная строка. Должна содержать хотя бы один символ.
start
-
Если
start
неотрицателен, возвращаемая подстрока начинается с позицииstart
от начала строки, считая от нуля. Например, в строке ‘abcdef‘, в позиции 0 находится символ ‘a‘, в позиции 2 — символ ‘c‘, и т.д.Если
start
отрицательный, возвращаемая подстрока начинается с позиции, отстоящей наstart
символов от конца строкиstring
.Если
string
меньше чемstart
символов, будет возвращеноFALSE
.Пример #1 Использование отрицательного параметра
start
Список параметров ¶
<?php $rest = substr("abcdef", -1); // возвращает "f" $rest = substr("abcdef", -2); // возвращает "ef" $rest = substr("abcdef", -3, 1); // возвращает "d" ?> length
-
Если
length
положительный, возвращаемая строка будет не длиннееlength
символов, начиная с параметраstart
(в зависимости от длиныstring
).Если
length
отрицательный, то будет отброшено указанное этим аргументом число символов с конца строкиstring
(после того как будет вычислена стартовая позиция, еслиstart
отрицателен). Если при этом позиция начала подстроки, определяемая аргументомstart
, находится в отброшенной части строки или за ней, возвращаетсяFALSE
.Если указан параметр
length
и является одним из 0,FALSE
илиNULL
, то будет возвращена пустая строка.Если параметр
length
опущен, то будет возвращена подстрока, начинающаяся с позиции, указанной параметромstart
и длящейся до конца строки.Пример #2 Использование отрицательного параметра
length
<?php $rest = substr("abcdef", 0, -1); // возвращает "abcde" $rest = substr("abcdef", 2, -1); // возвращает "cde" $rest = substr("abcdef", 4, -4); // возвращает false $rest = substr("abcdef", -3, -1); // возвращает "de" ?>
Возвращаемые значения
Возвращает извлеченную часть параметра string
; или FALSE
в случае возникновения ошибки или пустую строку.
Список изменений
Версия | Описание |
---|---|
7.0.0 | Если длина строки string равна количеству символов, указанному в start , то возвращается пустая строка. До этой версии в этом случае возвращалась FALSE . |
5.2.2 — 5.2.6 | Если параметр start указывает на позицию с отрицательной обрезкой, возвращается FALSE . Другие версии возвращают строку с начала. |
Примеры
Пример #3 Базовое использование 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 // Получить доступ к отдельному символу в строке // можно также с помощью "квадратных скобок" $string = 'abcdef'; echo $string[0]; // a echo $string[3]; // d echo $string[strlen($string)-1]; // f ?>
Пример #4 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; ?>
Результат выполнения данного примера в PHP 7:
1) 'pe' 2) '54' 3) 'gr' 4) '1' 5) '' 6) '' 7) '1200'
Результат выполнения данного примера в PHP 5:
1) 'pe' 2) '54' 3) 'gr' 4) '1' 5) false 6) false 7) '1200'
Ошибки
Возвращает FALSE
в случае ошибки.
<?php var_dump(substr('a', 2)); // bool(false) ?>