Как управлять текстом в 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 и другие схемы кодирования многобайтовых символов с отдельным набором функций .