(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)
?>