С PHP вы можете обрезать, подсчитывать, сортировать, добавлять текст к массивам и многому другому с использованием этих 9 мощных функций PHP. Строки являются одним из фундаментальных скалярных типов во многих языках программирования, включая PHP. Они представляют текстовые данные, от отдельных символов до целых документов.
Простейшая программа на строках включает в себя текст с одним байтом, который может представлять 256 различных символов. ASCII - самая распространенная кодировка. В языке PHP есть много полезных функций для манипулирования такими строками.
Если вы когда-либо программировали на PHP, вы, вероятно, сталкивались с echo
, но вы можете не понимать, что это на самом деле не функция вовсе. Фактически, 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
printf
на самом деле является настоящей функцией. Как и echo
и print
, она выводит строки, но у нее есть некоторое уникальное поведение, которое повторяет такую же функцию из языка C:$username = "John";
$length = printf("Hello, %s", $username); // "Hello, John"
echo $length; // 11
Первый аргумент все также является строкой, заключенной в двойные кавычки. Но printf
будет выполнять различные замены на специальные последовательности символов внутри строки. Эти последовательности начинаются с символа процента, как в приведенном выше примере, %s
. В этом конкретном случае %s
означает строку, и printf
заменяет его следующим аргументом, который является значением $username
.
Функция printf
возвращает полезное значение - длину отформатированной строки. Это может быть полезно для кода, который не может знать заранее длину, когда передает переменные в printf
, например. Вы можете использовать это значение возврата для определения того, сколько физического пространства строка займет в командной строке.
strlen
. Эта функция очень проста: она принимает единственный аргумент строки и возвращает количество байт в виде целого числа. Как уже упоминалось ранее, для текста ASCII количество байт совпадает с количеством символов:$length = strlen("Hello, World");
echo $length; // 12
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,"
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"
a
- это A
. Нижний регистр для Z
- это z
. Функции strtoupper
и strtolower
выполняют эти преобразования. Они делают это для каждого символа в строке ASCII:$original = "hello, WORLD";
$upper = strtoupper($original);
$lower = strtolower($original);
echo "$lower $upper"; // "hello, world HELLO, WORLD"
trim
может их удалить:$trimmed = trim(" Hello, World ");
echo $trimmed; // "Hello, World"
explode
звучит опасно, но не волнуйтесь, она не вызывает никакого долгосрочного вреда! Вместо этого она преобразует строку в массив строк, разделенных другой строкой - часто символом. Это может быть полезно, если вы хотите разбить предложение на отдельные слова, например.$sentence = "The quick brown fox jumps over the lazy dog";
$words = explode(" ", $sentence);
Теперь переменная $words
- это массив, содержащий отдельные слова:
[ "The", "quick", "brown", "fox", "jumps", "over", "the", "lazy", "dog" ]
explode
, функция str_split
разбивает строку на массив более мелких строк. В отличие от explode
, окончательные строки не определяются их содержимым, а их длиной.$parts = str_split("Hello, World", 6);
Теперь массив $parts
содержит две подстроки, каждая из шести символов:
[ "Hello,", " World" ]
str_replace
. Он принимает три аргумента: строку для поиска, строку замены и исходную строку для поиска. Функция возвращает новую строку:$result = str_replace("o", "OO", "Hello, World");
echo $result; // "HellOO, WOOrld"
PHP предоставляет много полезных способов работы с текстом Поскольку PHP часто используется в веб-разработке, работа с текстом - это обычная задача.
Представленные здесь функции являются одними из наиболее полезных для обработки текста с использованием PHP. В самом языке встроено около ста функций обработки строк.
Не забывайте, что показанные здесь функции предназначены для использования с ASCII-строками, а не с Unicode. PHP также поддерживает Unicode и другие схемы кодирования многобайтовых символов с отдельным набором функций.
Добавить комментарий