Как управлять текстом в PHP с помощью этих 9 функций

Строки – один из основных скалярных типов во многих языках программирования, включая PHP. Они представляют текстовые данные, от отдельных символов до целых документов.

В простейшем строковом программировании используется однобайтовый текст, который может представлять 256 различных символов. ASCII – наиболее распространенная кодировка. В базовом языке PHP есть много полезных функций для управления такими строками.

Как показать содержимое строки

Если вы занимались программированием на PHP, вы, вероятно, встречали эхо , но вы можете не осознавать, что это вообще не функция. Фактически, echo – это языковая конструкция, поэтому, даже если вы используете ее чаще, чем любую реальную строковую функцию, вы не всегда можете использовать ее вместо функции.

Вы почти всегда будете использовать это так:

 echo "Hello, world";

Но на самом деле это можно назвать функцией:

 echo("Hello, world");

Хотя это выглядит так, на самом деле это не вызов функции. Например, вы не можете присвоить его возвращаемое значение переменной:

 $a = echo("Hello, world");
Parse error: syntax error, unexpected 'echo' (T_ECHO)

Другой способ вывода строкового значения – использование print. Опять же, это не совсем настоящая функция, хотя она ближе к единице, чем echo. Как и echo, вы можете называть его без скобок:

 print "Hello, world";

Но, в отличие от echo, он возвращает значение, которое вы можете присвоить, хотя это значение всегда равно 1:

 $a = print("Hello, world");
echo $a; // 1

1. Вывод строки с использованием вещественной функции

Функция printf на самом деле настоящая функция. Подобно echo и print , он выводит строки, но имеет уникальное поведение, которое отражает ту же функцию из языка c:

 $username = "John";
$length = printf("Hello, %s", $username); // "Hello, John"
echo $length; // 11

Первым аргументом по-прежнему является строка, заключенная в двойные кавычки. Но printf будет выполнять различные замены в специальных последовательностях символов внутри строки. Эти последовательности начинаются с символа процента, как показано выше, % s . В этом конкретном случае% s обозначает строку, а printf заменяет ее следующим аргументом, который является значением $ username .

Функция printf возвращает полезное значение – длину отформатированной строки. Это может быть полезно для кода, который не может заранее знать длину, например, при передаче переменных в printf . Вы можете использовать это возвращаемое значение, чтобы определить, сколько физического места будет занимать строка в командной строке.

2. Получение длины строки

Говоря о длине строки, стандартным способом определения длины строки является функция strlen . Эта функция очень проста: она принимает единственный строковый аргумент и возвращает количество байтов в виде целого числа. Как упоминалось ранее, для текста ASCII количество байтов совпадает с количеством символов:

 $length = strlen("Hello, World");
echo $length; // 12

3. Извлечение части строки

Очень распространенной задачей при работе со строками является извлечение части этой строки. Есть несколько способов сделать это, и первый из представленных здесь определяет позицию и длину необходимой подстроки. Функция substr извлекает фиксированную часть строки в соответствии с этими параметрами.

 $greeting = substr("Hello, World", 0, 5);
echo $greeting; // "Hello"

Обратите внимание, что, как и в большинстве языков программирования, PHP считает смещения строки от 0. PHP отличается от некоторых языков тем, что вторым параметром этой функции является длина результирующей строки.

Связанный: Худшие и самые сложные языки программирования

Другое отличие заключается в том, что PHP поддерживает отрицательные значения как для смещения, так и для длины. Если смещение отрицательное, результат будет отсчитываться с конца строки, а не с начала:

 $greeting = substr("Hello, World", -5, 5);
echo $greeting; // "World"

Если длина отрицательная, она будет относиться к количеству удаленных символов, а не к количеству включенных:

 $greeting = substr("Hello, World", 0, -6);
echo $greeting; // "Hello,"

4. Поиск в строке

Важная часть обработки текста включает поиск расположения одной строки внутри другой. В PHP этого можно добиться с помощью функции strpos :

 $pos = strpos("Hello, World", ",");
echo $pos; // 5

Вы можете использовать strpos вместе с substr, чтобы предоставить более универсальный метод для извлечения части строки:

 $string = "Hello, World";
$pos = strpos($string, ",");
$first_part = substr($string, 0, $pos);
echo $first_part; // "Hello"

5. Преобразование регистра строки

Традиционные строки ASCII имеют четко определенные варианты в верхнем и нижнем регистре. Заглавная версия a – A. Строчная версия Z – это z. Эти преобразования выполняют функции strtoupper и strtolower . Они делают это для каждого символа в строке ASCII:

 $original = "hello, WORLD";
$upper = strtoupper($original);
$lower = strtolower($original);
echo "$lower $upper"; // "hello, world HELLO, WORLD"

6. Устранение пробелов

Иногда вы получаете строку, в которой есть начальные или конечные пробелы: пробелы, табуляции или символы новой строки. Часто это нежелательно, но обрезка может его удалить:

 $trimmed = trim(" Hello, World ");
echo $trimmed; // "Hello, World"

7. Разделение строки с помощью разделителя

Функция взрыва звучит опасно, но не волнуйтесь, она не причинит длительного ущерба! Вместо этого он преобразует строку в массив строк, разделенных другой строкой – часто символом. Это может быть полезно, например, если вы хотите разбить предложение на отдельные слова.

 $sentence = "The quick brown fox jumps over the lazy dog";
$words = explode(" ", $sentence);

Переменная $ words теперь представляет собой массив, содержащий отдельные слова:

 [ "The", "quick", "brown", "fox", "jumps", "over", "the", "lazy", "dog" ]

8. Разбиение строки на подстроки фиксированной длины

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

 $parts = str_split("Hello, World", 6);

Массив $ parts теперь содержит две подстроки, каждая по шесть символов:

 [ "Hello,", " World" ]

9. Поиск и замена в строке

Вы можете выполнить простой поиск и операцию замены в строке, используя str_replace . Требуется три аргумента: строка для поиска, строка замены и исходная строка для поиска. Функция возвращает новую строку:

 $result = str_replace("o", "OO", "Hello, World");
echo $result; // "HellOO, WOOrld"

PHP предоставляет множество полезных способов работы с текстом

Поскольку PHP часто используется в веб-разработке, работа с текстом – обычная задача.

Представленные здесь функции являются одними из самых полезных для обработки текста с помощью PHP. В сам язык встроено около сотни функций обработки строк .

Помните, что показанные здесь функции предназначены для использования со строками ASCII, а не со строками Unicode. PHP также поддерживает Unicode и другие схемы кодирования многобайтовых символов с отдельным набором функций .