ГРУППА КУРСА
|
Главная >
Учебник PHP >
Работа со строками в PHPСоздание строкиВ PHP, как и в других языках программирования, строки пишутся в кавычках. При этом PHP делает серьёзные различия между одинарными и двойными кавычками. Эти различия мы будем рассматривать при изучении данной темы. +
Сложение строкДля сложения строк не работает оператор "+". Вместо этого используется точка. Пример:
Переменную можно вставить в строку. Но для этого строка должна быть именно в двойных кавычках. Если она будет в одинарных, то в строку будет добавлено не значение а имя переменной, то есть знак $ и название. А если строка в двойных кавычках, то будет вставлено значение переменной.
Я не рекомендую часто пользоваться этой возможностью, потому что такая программа работает несколько медленнее. Лучше использовать сложение строк. Строковые функцииВ PHP есть достаточно много функций для работы со строкими. Однако, в их использовании есть одна сложность: они расчитаны на строки в однобайтных кодировках. В таких кодировках каждый символ занимает один байт. Но современные кодировки многобайтные, в том числе, UTF-8. Поэтому некоторые функции работают неправильно со строками, содержащими русские буквы. В частности, неправильно определяются позиции символов в строке и длина строки. Одно из решений - использовать функции предназначенные для работы с многобайтными кодировками. Названия таких функций начинаются со слова mb. Перед их использованием необходимо указать внутреннюю кодировку скрипта. Для этого используестся функция mb_internal_encoding(). Она пишется один раз скрипте до использования строковых функций. Функция mb_substr() возвращает подстроку, начиная с указанного символа: mb_substr (строка, начальный символ, длина) Параметры:
строка - строка из которой получается подстрока. начальный символ - номер символа, с которого начинается подстрока длина - длина подстроки. Необязательный параметр. Если не указать, то будет получена подстрока до конца строки. В PHP, как и в большинстве языков программирования, отсчёт символов в строке начинается с нуля. Для примера выведем подстроку из переменной $str, начиная с 0 символа, длиной 6 символов:
Начальный символ может иметь отрицательное значение. В этом случае отсчёт производится не с начала, а с конца строки. Длину тоже можно указать отрицательным числом. Тогда этот параметр меняет свой смысл. Это не длина подстроки, а номер символа с конца строки, до которого доходит подстрока. Выведем подстроку начиная с 7 символа с конца строки, длиной 5 символов:
Функция mb_strpos() возвращает позицию первого вхождения подстроки в строке. mb_strpos (строка, подстрока, начальный символ) Параметры:
строка - строка в которой производится поиск подстрока - подстрока, которую нужно найти начальный символ - номер символа, с которого начинается поиск. Необязательный параметр. Позволяет осуществлять поиск не с начала строки, а с указанного символа. Если подстрока не найдена, функция возвращает false. Для примера найдём позицию, с которой начинается слово "на" в переменной $new_str:
Функция mb_strrpos() находит позицию не первого, а последнего вхождения подстроки в строке. Параметры у неё такие же. Кроме того, существуют функции mb_stripos() и mb_strripos(), которые также находят позицию первого и последнего вхождения подстроки, но они не учитывают регистр символов. Функция str_replace() находит все вхождения подстроки и заменяет их на другую подстроку. Она не выводит позицию символов, поэтому её можно использовать с русскими символами. str_replace (искомая подстрока, новая подстрока, строка, количество замен) Параметры:
искомая подстрока - подстрока, которая будет заменена новая подстрока - подстрока, на которую происходит замена строка - строка, в которой производится замена количество замен - количество замен, которое будет произведено. Необязательный параметр. Позволяет заменить не все вхождения, а только часть, например, только первое вхождение. Для примера заменим в переменной $new_str слово "экран" на слово "страницу":
Учитывайте, что эта функция не меняет значение переменной, она только возвращает новое значение, а сама переменная остаётся неизменной. Вместо строки, в которой производится замена, может быть массив. Тогда замена будет сделана для всех элеменах массива и функция str_replace() также вернёт массив. Вместо иcкомой подстроки и новой подстроки также могут быть массивы. Можно использовать одну подстроку для замены массива. Тогда все элементы массива будут заменены на новую подстроку. |