Шаг 65.
Основы языка PHP.
Строки. Копирование части строки

    На этом шаге мы рассмотрим особенности получения подстроки из строки.

    Очень часто при работе со строками программисту необходимо получить какую-либо определенную последовательность символов имеющейся строки. Для этого используется функция 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>";
?>

    На следующем шаге мы рассмотрим функцию поиска подстроки в строке.




Предыдущий шаг Содержание Следующий шаг