На этом шаге мы рассмотрим особенности получения подстроки из строки.
Очень часто при работе со строками программисту необходимо получить какую-либо определенную последовательность символов имеющейся строки. Для этого используется функция substr(). Она позволяет получать любую часть строки с учетом указанных параметров.
Ее общий вид:
Рис.1. Общий вид функции substr()
Функция возвращает часть символов строки строка, определяемую параметрами номер (с какого символа) и длина (сколько символов будет в возвращаемой строке). Параметр длина является необязательным.
Если параметр номер положительный, то возвращаемая строка будет начинаться с символа строки с номером номер.
<?php $rest = substr("abcdef", 1); // возвращает "bcdef" echo $rest."<br>"; $rest = substr("abcdef", 1, 3); // возвращает "bcd" echo $rest."<br>"; $rest = substr("abcdef", 0, 4); // возвращает "abcd" echo $rest."<br>"; $rest = substr("abcdef", 0, 8); // возвращает "abcdef" echo $rest."<br>"; /* к отдельным символам можно обращаться с помощью фигурных скобок */ $string = 'abcdef'; echo $string[0]."<br>"; // выводит a echo $string[3]."<br>"; // выводит d ?>
Результат выполнения этой программы смотрите на рисунке 2.
Рис.2. Пример применения функции substr()
Если параметр номер отрицательный, то возвращаемая строка будет начинаться с символа номер от конца строки.
<?php $rest = substr("abcdef", -1); // возвращает "f" echo $rest."<br>"; $rest = substr("abcdef", -2); // возвращает "ef" echo $rest."<br>"; $rest = substr("abcdef", -3, 1); // возвращает "d" echo $rest."<br>"; ?>
Если параметр длина указан и он положительный, то возвращаемая строка закончится через длина символов от символа с номером номер. Если параметр длина указан и он отрицательный, то возвращаемая строка закончится через длина от конца строки.
<?php $rest = substr("abcdef",0,-1); // возвращает "abcde" echo $rest."<br>"; $rest = substr("abcdef",2,-1); // возвращает "cde" echo $rest."<br>"; $rest = substr("abcdef",4,-4); // возвращает "" (пустая строка) echo $rest."<br>"; $rest = substr("abcdef",-3,-1); // возвращает "de" echo $rest."<br>"; ?>
На следующем шаге мы рассмотрим функцию поиска подстроки в строке.