PHP: работа со строками. Строковые функции PHP
Сайты можно разделить на статические и динамические. После освоения HTML и CSS, которые позволяют сделать красивую визитку в интернете, многие задумываются, как создать динамический сайт на PHP. При этом верстальщик должен учитывать, что теперь он начинает изучать веб-программирование: принципы работы с сайтом будут отличаться. Одна из первых проблем, с которой сталкивается начинающий в PHP — работа со строками, их чтение и обработка.
sadržaj
- Создание и вывод строки
- Служебные символы
- Как найти позицию первого вхождения подстроки
- Поиск позиции последнего вхождения подстроки и подводные камни
- Как найти число вхождений подстроки
- Как изменить регистр строки в php: примеры
- Как найти длину строки в php: работа с функциями
- Получение и замена подстроки в php: работа со строками
- Перевод строки в число
- Перевод числа в строку
Стоит отметить, что в PHP функции работы со строками подразумевают большое количество методов, поэтому начинать их изучение стоит с самых простых манипуляций, таких как вывод строки, поиск, получение или замена подстроки, изменение регистра и возвращение длины строки. Многие функции плохо работают с кириллическими символами. Поэтому все примеры написаны на английском для наглядности. Для кириллических строк используются те же функции, но с префиксом mb_ (например, mb_strpos()). Прежде чем использовать аналоги, в php.ini необходимо раскомментировать строку -extension=php_mbstring.dll, просто убрав точку с запятой.
Создание и вывод строки
Мы разберем вывод строки на экран с помощью известной всем языковой конструкции echo. Программист может вывести строку сразу:
echo "Это Новая Строка"
или сначала создать переменную, а затем вывести ее на экран:
$str = "Это Новая Строка";
echo $str;
Если нужно вывести несколько строк в одной, то прибегают к их конкатенации:
echo "Это" . " Новая" . " Строка"-
или
$str1 = "Это"-
$str2 = "Новая"-
$str3 = "Строка"-
echo $str1 . $str2 . $str3-
В последнем случае на экран будет выведено ЭтоНоваяСтрока. Пробел можно добавить сразу при вызове echo:
echo $str1 . ` ` . $str2 . ` ` . $str3-
В этом случае на экран выведется: "Это Новая Строка". Конкатенация возможна не только при выводе, но и при создании строки:
$str1 = "Это"-
$str2 = "Новая"-
$str3 = "Строка"-
$string =$str1 . ` ` . $str2 . ` ` . $str3-
echo $string-
Echo выводит как латинские буквы, так и кириллические. Если одна из переменных содержала число, то при конкатенации это число будет преобразовано в соответствующую строку:
$i = 2-
$sum = $i + $i- //теперь $sum содержит число 4
echo $i . " + " . $i . " = " . $sum-
На экран будет выведено: "2 + 2 = 4".
Служебные символы
Допустим, строка определена с помощью двойных кавычек ($string = "Вот так"). Тогда можно совершенно спокойно использовать управляющие последовательности:
- n совершает перевод строки;
- r возвращает каретку;
- " экранирует двойные кавычки:
- echo "Строка с "двойными" кавычками"- //Строка с "двойными" кавычками
- $ экранирует доллар;
- экранирует обратную косую черту.
- Основные функции операционных систем
- Как создать красивую надпись в `Photoshop`
- Как IP-адрес скрыть от администрации сайта
- Функции в Excel: для чего они используются?
- Межстрочные интервалы, CSS, основы
- PHP. Работа с файлами и каталогами
- Куда устроиться на работу? Виды заработка в Интернете
- Какой планшетник для игр лучше выбрать
- Функции планшета: мини-компьютер в вашем кармане
- Как правильно создать резюме и отправить работодателю
- Hosts - что там должно быть? Hosts File
- Поиск в `Ворде`. Как выполнить поиск в `Ворде` по слову
- Решение проблемы `Прекращена работа программы The Evil Within`
- Delphi pos - строки в Паскале
- Как построить баню в `Майнкрафте` и что она должна включать?
- Как устроиться на работу в `Майнкрафт` и что вам это даст?
- Как стать админом в `Майнкрафте` и что делать с этой должностью?
- ID объектов в САМП для создания карт
- Как переголосовать в опросе `ВКонтакте`: инструкция
- Подробно о том, как сделать проигрыватель в `Майнкрафт`
- Как в `ГТА 4` достать телефон и что с ним делать?
Последовательностей гораздо больше, все их найти можно в официальной документации PHP.
Как найти позицию первого вхождения подстроки
Допустим, у нас есть простая строка:
$string = "My name is Yemelyan and I am 27 year old"-
Также у нас есть две строки с именами:
$name = "Yemelyan"-
$anotherName = "Katherin"-
Нам необходимо узнать, содержит ли первая строка эти два имени. Для этого используется функция strpos($str, $search). Она возвращает позицию искомой подстроки $search, если эта строка содержится в исходной, $str. В противном случае функция возвращает булево значение false. Например, strpos($string, $anotherName) вернет false, а strpos($string, $name) — целое число. Код будет таким (напишем вариант, когда позиция выводится на экран):
$string = "My name is Yemelyan and I am 27 year old"-
$name = "Yemelyan"-
$anotherName = "Katherin"-
echo strpos($string, $anotherName)- //выведет false
echo strpos($string, $name)- //выведет позицию первого вхождения подстроки
Учтите, что нумерация строки начинается с нуля, то есть в нашем случае последняя строка выведет число 11 (пробелы также считаются).
Поиск позиции последнего вхождения подстроки и подводные камни
Если функция strpos() возвращает позицию первого вхождения, то обратная ей функция strrpos() ищет последнее вхождение подстроки.
Здесь есть некоторые подводные камни, связанные с началом нумерации. Это стоит учитывать: в PHP работа со строками может быть осложнена ограничениями в сравнениях. Так, лучше не использовать операцию сравнения с отрицанием: strpos($str, $search)!=false. В любой версии PHP примеры с подобной эквиваленцией могут работать неправильно, ведь нумерация строк начинается с нуля, а в логической интерпретации 0 и есть false. Это распространяется и на функцию strrpos().
Как найти число вхождений подстроки
Часто нужно найти не позицию первого или последнего вхождения подстроки в строку, а общее их число. Для этого используется функция substr_count(), которая обрабатывает по меньшей мере две переменные: substr_count($str, $search). Возвращает целое число. Если необходимо уменьшить область поиска по строке, то в функцию передаются еще две переменные: начало и конец строки соответственно. То есть функция в этом случае вызывается так: substr_count($str, $search, $start, $end). Функция будет искать подстроку $search на промежутке от $start до $end исходной строки $str. Если строка не будет найдена, то функция вернет ноль.
Как изменить регистр строки в PHP: примеры
Изменение регистра часто используется для сравнения строк и условных операторов. Допустим, пользователь должен ввести имя верховного бога в скандинавской мифологии. В программе есть вариант "Один", с которым и будет сравниваться ответ пользователя. Если введенный текст не будет совпадать с имеющимся (например, пользователь напишет "один" или "ОДИН"), то программа вернет значение false вместо true. Чтобы этого избежать, применяется функция изменения регистра. Это часто используется, если сайт на PHP имеет теги: вместо сотни вариантов слова "личное" ("Личное", "личное", "ЛИЧНОЕ" и т. п.) есть только один тег в нижнем регистре.
Функция strtolower() изменяет регистр на нижний. Допустим, есть строка $catName = "Fluffy". Функция strtolower($catName) вернет строку "fluffy". Изменить регистр на верхний можно с помощью функции strtoupper().
Как найти длину строки в PHP: работа с функциями
Часто требуется найти длину строки. Например, в PHP работа со строками такого рода может понадобиться в создании цикла. Для поиска строки используется функция strlen(), которая возвращает число — количество символов. Нельзя забывать, что последний символ будет иметь номер strlen($str)-1, так как нумерация начинается с нуля.
Получение и замена подстроки в PHP: работа со строками
Получение подстроки осуществляется функцией substr(), которая может принимать два или три аргумента: substr($str, $start, $end). Допустим, у нас есть строка $string = "Fluffy cat", и мы хотим получить подстроку со второго по четвертый символ. Так как нумерация начинается с нуля, то переменная с этой подстрокой будет выглядеть так: $newString = substr($string, 1, 4). Если же мы введем $newString = substr($string, 1), то получим подстроку со второго символа по последний (то есть "luffy"). Этот код идентичен полному коду строки с использованием strlen(): substr($string, 1, strlen($string)).
Для замены подстроки используется функция str_replace(), которая принимает три переменные: str_replace($subStr, $newSub, $str). В отличие от многих функций, str_replace() корректно работает с кириллическими символами и не имеет аналога с префиксом. Пример:
$str = "Сегодня ужасная погода!"-
$newStr = str_replace("ужасная", "чудесная", $str)- //Сегодня чудесная погода!
Перевод строки в число
Каждому, кто изучает веб-программирование, рано или поздно приходится переводить строку в число. Для этого используются две похожие функции: intval() и floatval(), каждая из которых принимает одну переменную $string. Друг от друга они отличаются только типом возвращаемых данных: intval() возвращает целое число, а floatval() - число с плавающей точкой.
Для использования как intval(), так и floatval() необходимо, чтобы строка начиналась с цифр, они и будут преобразованы в число. Если после цифр будет идти любой набор букв, они просто проигнорируются. В том случае, если строка начинается с букв, использование функции вернет ноль. В идеале же строка должна содержать в себе исключительно цифры.
Перевод числа в строку
Часто требуется перевести числа в строку. Скажем, если необходимо взять половинку числа и возвести ее в квадрат (например, проверить, выполняется ли равенство: 88 х 88 + 33 х 33 = 8833). В этом случае используется функция strval(), которая возвращает строку с числом. После этого с новой строкой можно совершать все прочие действия: изменять, искать вхождение подстроки и другие функции. При необходимости строку можно вновь перевести в число уже описанным выше способом.
В статье была рассмотрена лишь малая часть всех функций, связанных со строками. Часть неописанных функций работает с символами, но большая не была включена в материал из-за специфичности. Для ознакомления с этими функциями необходимо перейти к чтению официальной документации по PHP, которая отображает актуальную информацию.