substr

(PHP 4, PHP 5, PHP 7)

substrВозвращает подстроку

Описание

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

Возвращает подстроку строки string, начинающейся с offset символа по счету и длиной length символов.

Список параметров

string

Входная строка.

offset

Если offset неотрицателен, возвращаемая подстрока начинается с позиции offset от начала строки, считая от нуля. Например, в строке 'abcdef', в позиции 0 находится символ 'a', в позиции 2 - символ 'c', и т.д.

Если offset отрицательный, возвращаемая подстрока начинается с позиции, отстоящей на offset символов от конца строки string.

Если string меньше offset символов, будет возвращено false.

Пример #1 Использование отрицательного параметра offset

<?php
$rest 
substr("abcdef", -1);    // возвращает "f"
$rest substr("abcdef", -2);    // возвращает "ef"
$rest substr("abcdef", -31); // возвращает "d"
?>

length

Если length положительный, возвращаемая строка будет не длиннее length символов, начиная с параметра offset (в зависимости от длины string).

Если length отрицательный, то будет отброшено указанное этим аргументом число символов с конца строки string (после того как будет вычислена стартовая позиция, если offset отрицателен). Если при этом позиция начала подстроки, определяемая аргументом offset, находится в отброшенной части строки или за ней, возвращается false.

Если указан параметр length и является одним из 0, false или null, то будет возвращена пустая строка.

Если параметр length опущен, то будет возвращена подстрока, начинающаяся с позиции, указанной параметром offset и длящейся до конца строки.

Пример #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 в случае возникновения ошибки или пустую строку.

Список изменений

Версия Описание
8.0.0 length теперь допускает значение null.
8.0.0 Функция возвращает пустую строку там, где раньше возвращала false.

Примеры

Пример #3 Базовое использование 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

// Получить доступ к отдельному символу в строке
// можно также с помощью квадратных скобок
$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"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;
?>

Результат выполнения данного примера в 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)
?>

Смотрите также