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

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

С помощью этих 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

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');
echo$greeting;// 'Hello'

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

Похожие: Худшие и самые трудные языки программирования

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

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

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

$greeting = substr('Hello, World'-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,, $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. Устранение пробелов

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

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

7. Разбиение строки разделителем

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

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

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

'The''quick''brown''fox''jumps''over''the''lazy''dog'

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

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

$parts = str_split('Hello, World');

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

'Hello,'' World'

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

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

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

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

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

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

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

Об авторе

Алексей Белоусов

Привет, меня зовут Филипп. Я фрилансер энтузиаст . В свободное время занимаюсь переводом статей и пишу о потребительских технологиях для широкого круга изданий , не переставая питать большую страсть ко всему мобильному =)

Комментировать

Оставить комментарий