Добавить в корзинуПозвонить
Найти в Дзене
WebTechnology

Строковые функции в PHP

Строки - это один из основных типов переменных в PHP. И с ними приходится работать наравне с числами, с булевскими переменными и массивами. Разумеется, разработчики PHP, чтобы облегчить нам работу со строками, уже встроили много готовых функций для нас. И о самых часто используемых мы и поговорим. Начнём с функции, которую я использую при работе со строками в PHP регулярно - strlen(). Данная функция возвращает длину строки (количество символов в строке): <?php
  $str = "This is my string";
  echo strlen($str);
?> Думаю, что данная функция в комментариях не нуждается. Также имеются две часто используемые строковые функции - это strtolower() и strtoupper(). Эти функции позволяют перевести строку в нижний и верхний регистр соответственно: <?php
  $str = "This is my string";
  echo strtolower($str)."<br />";
  echo strtoupper($str);
?> Очень полезная строковая функция - substr(), которая возвращает подстроку из исходной строки: <?php
  $str = "This is my string";
  echo substr($str, 1)."<

Строки - это один из основных типов переменных в PHP. И с ними приходится работать наравне с числами, с булевскими переменными и массивами. Разумеется, разработчики PHP, чтобы облегчить нам работу со строками, уже встроили много готовых функций для нас. И о самых часто используемых мы и поговорим.

Начнём с функции, которую я использую при работе со строками в PHP регулярно - strlen(). Данная функция возвращает длину строки (количество символов в строке):

<?php
  $str = "This is my string";
  echo strlen($str);
?>

Думаю, что данная функция в комментариях не нуждается.

Также имеются две часто используемые строковые функции - это strtolower() и strtoupper(). Эти функции позволяют перевести строку в нижний и верхний регистр соответственно:

<?php
  $str = "This is my string";
  echo strtolower($str)."<br />";
  echo strtoupper($str);
?>

Очень полезная строковая функция - substr(), которая возвращает подстроку из исходной строки:

<?php
  $str = "This is my string";
  echo substr($str, 1)."<br />";
  echo substr($str, 4, 2)."<br />";
?>

Как видите, данная функция может содержать два, либо три параметра. Первый параметр - это исходная строка, второй параметр - это номер символа в исходной строке, который потом станет первым в полученной строке. Обратите внимание: нумерация символов начинается с 0 (то есть в нашем примере, 1-ый символ - "h"). Третий параметр означает длину строки, которую мы хотим получить. Если этот параметр не задан, то возвращается строка, начиная со второго параметра и до конца строки. В общем, смотрите на результат, и Вам всё станет ясно.

Ещё одна полезная строковая функция в PHP - это str_replace(). Как следует из названия, данная функция возвращает строку с заменой какой-то части:

<?php
  $str = "This is my string";
  echo str_replace("my", "your", $str);
?>

На выходе у нас получилась следующая строка: "This is your string". То есть данная функция заменила строку, заданную первым параметром, на строку, заданную вторым параметром, в строке, заданной третьим параметром, и вернула результат.

И последняя функция, которую мы с Вами рассмотрим, - это strpos(). Данная функция ищет вхождение подстроки в строку и возвращает номер первого символа вхождения (напоминаю, что нумерация символов начинается с 0, а не с 1):

<?php
  $str = "This is my string";
  echo strpos($str, "is");
?>

Как видите, данная функция очень простая и очень важная, так как позволяет осуществлять поиск в строке. Также у функции strpos() есть ещё один необязательный параметр, задающий смещение. Напоминаю, что данная функция ищет первое вхождение. Например, в нашем примере "is" встречается в строке дважды, но вернула эта функция номер символа при первом вхождении. Поэтому для того, чтобы получить номера и других вхождений необходимо задавать третий параметр - смещение:

<?php
  $str = "This is my string";
  echo strpos($str, "is", 4);
?>

Таким образом, теперь мы получили номер символа в следующем вхождении. И, напоследок, хочется сказать, что если вхождение не будет найдено, то функция вернёт false. И вот на этом моменте у многих бывают ошибки. Давайте приведу простой пример:

<?php
  $str = "This is my string";
if (strpos($str, "Th") == false) echo "Строка не найдена";
else echo "Строка найдена";
?>

Очевидно, что "Th" содержится в исходной строке, и номер символа первого вхождения - это 0. Но если Вы запустите этот скрипт, то увидите, что "строка не найдена". Почему? Если Вы читали статью об операторе эквивалентности, то без проблем ответите на этот вопрос. Однако, если нет, то поясняю. Дело в том, что так как у нас функция strpos() вернула 0, а 0 с точки зрения PHP - это false, то он без проблем сделал вывод о том, что условие истинно (ведь слева false и справа false). Как быть? Ответ прост: воспользоваться оператором эквивалентности (обозначается ===), который сравнивает не только значения (которые в нашем примере равны для PHP), но и их типы:

<?php
  $str = "This is my string";
if (strpos($str, "Th") === false) echo "Строка не найдена";
else echo "Строка найдена";
?>

И вот теперь Вы увидите, что "строка найдена". Как видите, оператор эквивалентности может заявить о себе в любую минуту, и всегда нужно о нём помнить, иначе Вам не избежать труднодоступных ошибок.

Конечно, это далеко не весь набор строковых функций, которые нам предоставили разработчики PHP, но я, исходя из своей практики, привёл Вам список самых часто используемых строковых функций в PHP.