Курс по PHP. Функции работы со строками в 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 .

Для примера найдём позицию, с которой начинается слово «на» в переменной $newstr :

Функция mb_strrpos() находит позицию не первого, а последнего вхождения подстроки в строке. Параметры у неё такие же.

Кроме того, существуют функции mb_stripos() и mb_strripos() , которые также находят позицию первого и последнего вхождения подстроки, но они не учитывают регистр символов.

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

str_replace (искомая подстрока, новая подстрока, строка, количество замен)

искомая подстрока — подстрока, которая будет заменена

новая подстрока — подстрока, на которую происходит замена

строка — строка, в которой производится замена

количество замен — количество замен, которое будет произведено. Необязательный параметр. Позволяет заменить не все вхождения, а только часть, например, только первое вхождение.

Для примера заменим в переменной $newstr слово «экран» на слово «страницу»:

Учитывайте, что эта функция не меняет значение переменной, она только возвращает новое значение, а сама переменная остаётся неизменной.

Вместо строки, в которой производится замена, может быть массив. Тогда замена будет сделана для всех элеменах массива и функция str_replace() также вернёт массив.

Вместо иcкомой подстроки и новой подстроки также могут быть массивы. Можно использовать одну подстроку для замены массива. Тогда все элементы массива будут заменены на новую подстроку.

Коприрование материалов сайта возможно только с согласия администрации

Функции обработки строк

Эти функции предназначены для выполнения различных манипуляций со строками. Более специализированные функции см. в разделах, посвященных регулярным выражениям и обработке URL .

Для получения общей информации о работе со строками, особенно об использовании одиночных и двойных кавычек и экранировании символов, смотрите главу «Строки» в разделе «Типы» .

Эти функции всегда доступны.

Для использования этих функций не требуется проведение установки, поскольку они являются частью ядра PHP.

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

Строковые функции PHP

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

Вот список основных, и самых используемых строковых функций в php:

  1. srelen («текст») — считает количество символов в строке. Вот небольшой пример:
  2. str_replace(«что заменять», «на что заменять», «текст»); – функция нужна для замены подстроки в строке. Например, нам нужно заменить слово студия на «ля-ля-ля», в предложении: «Дизайн студия OX2 на рынке 20 лет» На экране увидим: «Дизайн ля-ля-ля OX2 на рынке 20 лет »
  3. trim («текст», «символы») — удаляет символы по краям. Например, нам нужно удалить по-краям пробелы и запятые в строке — « , , , Дизайн студия ox2.ru , , «, «, ». Для этого напишем код: Первый параметр строка, второй — символы, которые нужно удалить по краям (если не указывать второй параметр, то обрезаться будут только пробелы).
    На экране увидим «Дизайн студия ox2.ru», без пробелов и запятых. Есть аналогичные функции ltrim — удаляет символы слева, и rtrim — справа.
    Функция очень часто используется при создании интернет-магазинов, например при авторизации, чтобы пользователь при копировании пароля из блокнота случайно не вставил лишние пробелы или другие знаки.
  4. substr(«Строка», «Начальная позиция», «Конечная позиция»); — возвращает часть строки. Например, нам нужно в строке «Дизайн студия ox2.ru занимается созданием сайтов и интернет-магазинов» обрезать все лишнее, и оставить только «ox2.ru занимается созданием сайтов», для этого напишем код: Вырезаем подстроку, начинаю с 14-ого символа, и заканчивая 34. На экране увидим «ox2.ru занимается созданием сайтов». Если последний параметр (34) не указывать, то текст будет вырезан с 14-ой позиции до конца строки.
  5. strpos(«Строка», «подстрока», позиция начального символа); — возвращает позицию найденной подстроки в строке. Например, нам нужно узнать позицию слова «ox2» в строке «Компания ox2.ru умеет создавать интернет магазины. В дизайн студии ox2.ru вы можете заказать сайт», пишем код: На экране увидим 9, т.к. с 9-ого символа начинается первое вхождение слова ox2. Если указать 3-ий параметр то поиск вхождения будет с этой позиции.
    Так же есть функция strrpos, она ищет справа налево. Если в этом примере указать вместо strpos – strrpos, то на экране увидим 67, т.к. справа первое вхождение начинается с 67-ого символа.

Теперь напишем пример, для закрепления материала. В нашем скрипте будем обрабатывать данные из текстового поля «Адрес сайта:». Адрес сайта можно ввести так: «http://ox2.ru/», можно так «www.ox2.ru», можно так: «ox2.ru/», и т.д. Вариантом достаточно много. А для нашего интернет-магазина обязательное условие, это хранение всех данных о пользователе в едином формате («ox2.ru», без http, www, пробелов и слэшей по краям!).

Конечно это не самый удачный вариант, использовать такое количество строковых функций для обрезания лишнего, можно воспользоваться той же функцией str_replace:

Но цель урока показать использование этих функций в связке.

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

PHP: работа со строками. Строковые функции PHP

Сайты можно разделить на статические и динамические. После освоения HTML и CSS, которые позволяют сделать красивую визитку в интернете, многие задумываются, как создать динамический сайт на PHP. При этом верстальщик должен учитывать, что теперь он начинает изучать веб-программирование: принципы работы с сайтом будут отличаться. Одна из первых проблем, с которой сталкивается начинающий в PHP — работа со строками, их чтение и обработка.

Стоит отметить, что в PHP функции работы со строками подразумевают большое количество методов, поэтому начинать их изучение стоит с самых простых манипуляций, таких как вывод строки, поиск, получение или замена подстроки, изменение регистра и возвращение длины строки. Многие функции плохо работают с кириллическими символами. Поэтому все примеры написаны на английском для наглядности. Для кириллических строк используются те же функции, но с префиксом mb_ (например, mb_strpos()). Прежде чем использовать аналоги, в php.ini необходимо раскомментировать строку ;extension=php_mbstring.dll, просто убрав точку с запятой.

Создание и вывод строки

Мы разберем вывод строки на экран с помощью известной всем языковой конструкции echo. Программист может вывести строку сразу:

echo «Это Новая Строка»

или сначала создать переменную, а затем вывести ее на экран:

$str = «Это Новая Строка»;

Если нужно вывести несколько строк в одной, то прибегают к их конкатенации:

echo «Это» . » Новая» . » Строка»;

echo $str1 . $str2 . $str3;

В последнем случае на экран будет выведено ЭтоНоваяСтрока. Пробел можно добавить сразу при вызове echo:

echo $str1 . ‘ ‘ . $str2 . ‘ ‘ . $str3;

В этом случае на экран выведется: «Это Новая Строка». Конкатенация возможна не только при выводе, но и при создании строки:

Топ-пост этого месяца:  Sass комментарии и возможности, которые они открывают

$string = $str1 . ‘ ‘ . $str2 . ‘ ‘ . $str3;

Echo выводит как латинские буквы, так и кириллические. Если одна из переменных содержала число, то при конкатенации это число будет преобразовано в соответствующую строку:

$sum = $i + $i; //теперь $sum содержит число 4

echo $i . » + » . $i . » = » . $sum;

На экран будет выведено: «2 + 2 = 4».

Служебные символы

Допустим, строка определена с помощью двойных кавычек ($string = «Вот так»). Тогда можно совершенно спокойно использовать управляющие последовательности:

  • \n совершает перевод строки;
  • \r возвращает каретку;
  • \» экранирует двойные кавычки:
    • echo «Строка с \»двойными\» кавычками»; //Строка с «двойными» кавычками
  • \$ экранирует доллар;
  • \\ экранирует обратную косую черту.

Последовательностей гораздо больше, все их найти можно в официальной документации PHP.

Как найти позицию первого вхождения подстроки

Допустим, у нас есть простая строка:

$string = «My name is Yemelyan and I am 27 year old»;

Также у нас есть две строки с именами:

Нам необходимо узнать, содержит ли первая строка эти два имени. Для этого используется функция strpos($str, $search). Она возвращает позицию искомой подстроки $search, если эта строка содержится в исходной, $str. В противном случае функция возвращает булево значение false. Например, strpos($string, $anotherName) вернет false, а strpos($string, $name) — целое число. Код будет таким (напишем вариант, когда позиция выводится на экран):

$string = «My name is Yemelyan and I am 27 year old»;

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, которая отображает актуальную информацию.

ИнтеллигенцияX

Изучение функций в PHP

Практически все современные сайты построены полностью, или частично с использованием языка программирования PHP.

Естественно по данной причине нужно если не качественно изучить его возможности, то хотя бы частично, чтобы иметь представление о том, с чем нужно иметь дело.

Для общего примера, можно привести аргумент такой: на многих форумах постоянно задаются вопросы о элементарном.

Например пользователь скачал движок сайта, но не знает как подключить к нему нужный плагин, или удалить скрытую ссылку, которую туда вставил автор.

Или например совсем элементарное — вставить часы на сайт.

Для человека, хоть немного представляющего о чем идет речь, дело нескольких секунд.

Это же касается обновлений сайта.

Для человека, которого выражение — создать админку для сайта, приводит в ступор, будет довольно дорого постоянно покупать услуги программиста для мелких изменений.

А после небольшого обучения, будет просто смешно смотреть на себя из прошлого.

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

Постараюсь все излагать в максимально простом виде (в меру возможности).

А основной уклон будет на использование функций в PHP, без которых практически невозможно работать в сети.

Их достаточно много, но акцент будет поставлен на самые основные, которые применяются практически в разработке любого сайта.

С учетом того, что и я знаком с PHP без году неделя, я буду параллельно обучаться PHP и выкладывать информацию в блог.

Среди функций рассмотрим полезные стандартные функции.

Также выделим особое внимание функциям, для работы со строками, без чего практически невозможно сделать вывод информации на страницу сайта.

Ну а о собственных функциях можно будет поговорить уже после освоения мной основ PHP.

Для начала список функций для работы со строками (выкладываю в том числе как памятку для себя), и в конце пример использования функции substr для конвертации даты-времени:

addcslashes — Экранирует спецсимволы в стиле языка C

addslashes — Экранирует спецсимволы в строке

bin2hex — Преобразует бинарные данные в шестнадцатиричное представление

chop — Псевдоним функции rtrim()

chr — Возвращает символ по его коду

chunk_split — Разбивает строку на фрагменты

convert_cyr_string — Преобразует строку из одной кириллической кодировки в другую

convert_uudecode — Преобразует строку из формата uuencode в обычный вид

convert_uuencode — Преобразует строку в формат uuencode

count_chars — Возвращает информацию о символах, входящих в строку

crc32 — Вычисляет CRC32 для строки

crypt — Необратимое шифрование (хэширование)

echo — Выводит одну или более строк

explode — Разбивает строку на подстроки

fprintf — Записывает отформатированную строку в поток

get_html_translation_table — Возвращает таблицу преобразований, используемую функциями htmlspecialchars() и htmlentities()

hebrev — Преобразует текст на иврите из логической кодировки в визуальную.

hebrevc — Преобразует текст на иврите из логической кодировки в визуальную с преобразованием перевода строки.

html_entity_decode — Преобразует HTML сущности в соответствующие символы

htmlentities — Преобразует символы в соответствующие HTML сущности.

htmlspecialchars_decode — Преобразует специальные HTML-сущности обратно в соответствующие символы

htmlspecialchars — Преобразует специальные символы в HTML сущности

implode — Объединяет элементы массива в строку

join — Псевдоним функции implode()

levenshtein — Вычисляет расстояние Левенштейна между двумя строками

localeconv — Возвращает информацию о числовых форматах

ltrim — Удаляет пробелы из начала строки

md5_file — Возвращает MD5 хэш файла

md5 — Возвращает MD5 хэш строки

metaphone — Возвращает ключ metaphone для строки

money_format — Форматирует число как денежную величину

nl_langinfo — Возвращает информацию о языке и локали

nl2br — Вставляет HTML код разрыва строки перед каждым переводом строки

number_format — Форматирует число с разделением групп

ord — Возвращает ASCII код символа

parse_str — Разбирает строку в переменные

print — Выводит строку

printf — Выводит отформатированную строку

quoted_printable_decode — Раскодирует строку, закодированную методом quoted printable

quotemeta — Экранирует специальные символы

rtrim — Удаляет пробелы из конца строки

setlocale — Устанавливает локаль

sha1_file — Возвращает SHA1 хэш файла

sha1 — Возвращает SHA1 хэш строки

similar_text — Вычисляет степень похожести двух строк

soundex — Возвращает ключ soundex для строки

sprintf — Возвращает отформатированную строку

sscanf — Разбирает строку в соответствии с заданным форматом

str_ireplace — Регистро-независимый вариант функции str_replace().

str_pad — Дополняет строку другой строкой до заданной длины

Топ-пост этого месяца:  Из-за ошибки в работе системы из выдачи Google исчезли быстрые ссылки

str_repeat — Возвращает повторяющуюся строку

str_replace — Заменяет строку поиска на строку замены

str_rot13 — Выполняет над строкой преобразование ROT13

str_shuffle — Переставляет символы в строке

str_split — Преобразует строку в массив

str_word_count — Возвращает информацию о словах, входящих в строку

strcasecmp — Сравнение строк без учета регистра, безопасное для данных в двоичной форме

strchr — Псевдоним функции strstr()

strcmp — Сравнение строк, безопасное для данных в двоичной форме

strcoll — Сравнение строк с учетом текущей локали

strcspn — Возвращает длину участка в начале строки, не соответствующего маске

strip_tags — Удаляет HTML и PHP тэги из строки

stripcslashes — Удаляет экранирование символов, произведенное функцией addcslashes()

stripos — Возвращает позицию первого вхождения подстроки без учета регистра

stripslashes — Удаляет экранирование символов, произведенное функцией addslashes()

stristr — Регистро-независимый вариант функции strstr().

strlen — Возвращает длину строки

strnatcasecmp — Сравнение строк без учета регистра с использованием алгоритма «естественного упорядочения»

strnatcmp — Сравнение строк с использованием алгоритма «естественного упорядочения»

strncasecmp — Сравнение первых n символов строк без учета регистра, безопасное для данных в двоичной форме

strncmp — Сравнение первых n символов строк без учета регистра, безопасное для данных в двоичной форме

strpbrk — Ищет в строке любой символ из заданного набора

strpos — Возвращает позицию первого вхождения подстроки

strrchr — Находит последнее вхождение подстроки

strrev — Переворачивает строку

strripos — Возвращает позицию последнего вхождения подстроки без учета регистра

strrpos — Возвращает позицию последнего вхождения символа

strspn — Возвращает длину участка в начале строки, соответствующего маске

strstr — Находит первое вхождение подстроки

strtok — Разбивает строку

strtolower — Преобразует строку в нижний регистр

strtoupper — Преобразует строку в верхний регистр

strtr — Преобразует заданные символы

substr_compare — Безопасное для обработки данных в двоичной форме сравнение 2 строк со смещением, с учетом или без учета регистра

substr_count — Возвращает число вхождений подстроки

substr_replace — Заменяет часть строки

substr — Возвращает подстроку

trim — Удаляет пробелы из начала и конца строки

ucfirst — Преобразует первый символ строки в верхний регистр

ucwords — Преобразует в верхний регистр первый символ каждого слова в строке

vfprintf — Записывает форматированную строку в поток

vprintf — Выводит отформатированную строку

vsprintf — Возвращает отформатированную строку

wordwrap — Выполняет перенос строки на данное количество символов с использованием символа разрыва строки.

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

Например есть значение дата-время, отдаваемое календариком, вида ‘2015.03.25 12:00’ в переменную $dtime

Нам надо из него извлечь значение даты в виде 25-03-2015 в переменную $date

С помощью функции substr это можно сделать так:

PHP: работа со строками. Строковые функции PHP

Сайты можно разделить на статические и динамические. После освоения HTML и CSS, которые позволяют сделать красивую визитку в интернете, многие задумываются, как создать динамический сайт на PHP. При этом верстальщик должен учитывать, что теперь он начинает изучать веб-программирование: принципы работы с сайтом будут отличаться. Одна из первых проблем, с которой сталкивается начинающий в PHP — работа со строками, их чтение и обработка.

Создание и вывод строки

Мы разберем вывод строки на экран с помощью известной всем языковой конструкции echo. Программист может вывести строку сразу:

echo «Это Новая Строка»

или сначала создать переменную, а затем вывести ее на экран:

$str = «Это Новая Строка»;

Если нужно вывести несколько строк в одной, то прибегают к их конкатенации:

echo «Это» . » Новая» . » Строка»;

echo $str1 . $str2 . $str3;

В последнем случае на экран будет выведено ЭтоНоваяСтрока. Пробел можно добавить сразу при вызове echo:

echo $str1 . ‘ ‘ . $str2 . ‘ ‘ . $str3;

В этом случае на экран выведется: «Это Новая Строка». Конкатенация возможна не только при выводе, но и при создании строки:

$string = $str1 . ‘ ‘ . $str2 . ‘ ‘ . $str3;

Echo выводит как латинские буквы, так и кириллические. Если одна из переменных содержала число, то при конкатенации это число будет преобразовано в соответствующую строку:

$sum = $i + $i; //теперь $sum содержит число 4

echo $i . » + » . $i . » = » . $sum;

На экран будет выведено: «2 + 2 = 4».

Служебные символы

Допустим, строка определена с помощью двойных кавычек ($string = «Вот так»). Тогда можно совершенно спокойно использовать управляющие последовательности:

  • \n совершает перевод строки;
  • \r возвращает каретку;
  • \» экранирует двойные кавычки:
    • echo «Строка с \»двойными\» кавычками»; //Строка с «двойными» кавычками
  • \$ экранирует доллар;
  • \\ экранирует обратную косую черту.

Последовательностей гораздо больше, все их найти можно в официальной документации PHP.

Как найти позицию первого вхождения подстроки

Допустим, у нас есть простая строка:

$string = «My name is Yemelyan and I am 27 year old»;

Также у нас есть две строки с именами:

Нам необходимо узнать, содержит ли первая строка эти два имени. Для этого используется функция strpos($str, $search). Она возвращает позицию искомой подстроки $search, если эта строка содержится в исходной, $str. В противном случае функция возвращает булево значение false. Например, strpos($string, $anotherName) вернет false, а strpos($string, $name) — целое число. Код будет таким (напишем вариант, когда позиция выводится на экран):

$string = «My name is Yemelyan and I am 27 year old»;

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() необходимо, чтобы строка начиналась с цифр, они и будут преобразованы в число. Если после цифр будет идти любой набор букв, они просто проигнорируются. В том случае, если строка начинается с букв, использование функции вернет ноль. В идеале же строка должна содержать в себе исключительно цифры.

Перевод числа в строку

Часто требуется перевести числа в строку. Скажем, если необходимо взять половинку числа и возвести ее в квадрат (например, проверить, выполняется ли равенство: 88 х 88 + 33 х 33 = 8833). В этом случае используется функция strval(), которая возвращает строку с числом. После этого с новой строкой можно совершать все прочие действия: изменять, искать вхождение подстроки и другие функции. При необходимости строку можно вновь перевести в число уже описанным выше способом.

Данные PHP

Строки PHP

Строки являются последовательностями символов. В PHP символ соответствует байту, т.е. существует точно 256 возможных различных символов. Строки могут быть очень большими. В PHP не существует практического ограничения на размер строк, поэтому вообще нет причин беспокоиться об их длине. Строковые значения могут использоваться буквально или присваиваться переменным.

В PHP строковый литерал можно представлять тремя способами.

строки в одиночных кавычках

строки в двойных кавычках

строки в синтаксисе heredoc

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

Строки в одиночных кавычках

Одиночные кавычки предоставляют самый простой метод для работы со строками. При использовании этого метода строки заключаются в одиночные кавычки (‘ ‘). Если одиночные кавычки требуются как часть строки, они должны быть экранированы символом обратной косой черты («\»). Хотя одиночные кавычки предоставляют простой способ работы со строками, одиночные кавычки не поддерживают применение интерполяции (см. «раздел 3-1» , Скалярные переменные). Примеры ниже иллюстрируют использование одиночных кавычек.

Первая строка вывода является результатом работы оператора echo , который выводит литеральную строку в одиночных кавычках в окне браузера. Вторая строка выводится после присваивания строки в одиночных кавычках переменной. Переменная затем выводится с помощью оператора echo . Следующая строка вывода демонстрирует использование экранирующего символа.

Топ-пост этого месяца:  Как делается во Vue js отладка кода обнаружение и устранение ошибок в приложении

Строки в двойных кавычках

Строки PHP можно выводить также с помощью двойных кавычек («»). Если строки PHP помещаются в двойные кавычки, то можно применять интерполяцию. Для строк в двойных кавычках PHP поддерживает также больше экранированных символов. Эти символы представлены в таблице ниже.

Символ Описание
\n перенос строки
\r возврат каретки
\t горизонтальная табуляция
\\ обратная косая черта
\$ знак доллара
двойная кавычка

Первая строка выводит строку в двойных кавычках с помощью оператора echo . Вторая — создается строкой с включенной переменной. Переменная расширяется, и ее содержимое выводится вместе со строкой. Затем расширяется переменная массива и выводится вместе со строкой.

Функции для работы со строками

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

strlen(string) – определяет длину строки string .

ltrim(string) – удаляет символы-разделители в начале строки string .

rtrim(string) – удаляет символы-разделители в конце строки string .

strpbrk (string, char) – ищет в строке string символ char . Возвращает false или строку, начинающуюся с найденного символа.

strtoupper(string) – преобразует строку в верхний регистр.

strtolower(string) – преобразует строку в нижний регистр.

strrev(string) – возвращает строку string в обратном порядке.

eregi(pattern, subject) – выполняет независимое от регистра символов сравнение с выражением. В строке subject происходит поиск регулярного выражения, заданного строкой pattern .

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

Первая строка выводит длину строки «Hello World» , равную 11. Затем строка «Welcome to PHP» преобразуется в верхний регистр и выводится в окне браузера. Эта строка используется также с функцией strrev для изменения порядка символов строки на обратный. Наконец, в строке происходит поиск символа «W» . Так как первое появление символа происходит в тексте «World» , выводится эта строка.

Функции даты и времени

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

date(format) – возвращает текущее время сервера, форматированное согласно заданному множеству параметров format .

checkdate(month, day, year) – проверяет заданную дату. Успешная проверка означает, что год year находится между 0 и 32767, месяц month – между 1 и 12, и правильное количество дней каждого месяца.

time() – возвращает текущее время сервера, измеренное в секундах, начиная с 1 января 1970 г.

Следующая таблица содержит допустимые форматы date() :

a выводит «am» или «pm»
A выводит «AM» или «PM»
h часы в 12-часовом формате (01 – 12)
H часы в 24-часовом формате (00 – 23)
g часы в 12-часовом формате без ведущего нуля (1 – 12)
G часы в 24-часовом формате без ведущего нуля (0 – 23)
i минуты (00 – 59)
s секунды (00 – 59)
d день месяца двумя цифрами (01 – 31)
D день недели текстом (Mon – Sun)
l день недели длинным текстом (Monday – Sunday)
F месяц длинным текстом (January – December)
n месяц двумя цифрами (1 – 12)
Y год четырьмя цифрами (2005)
y год двумя цифрами (05)
S английские порядковые суффиксы (th, nd, st)

Следующая страница использует функцию PHP date() для определения и вывода текущего времени сервера и даты:

Формат даты/времени, выводимый с помощью функции date() , зависит от типов параметров формата, подставленных в функцию. Параметры функции date() можно объединять, разделяя запятой «,» , двоеточием «:» или другими знаками пунктуации, в зависимости от желаемого формата вывода. Все параметры, однако, должны быть заключены в одиночные кавычки. В примере выше время выводится с помощью параметров формата времени g , i , s , и a . Двоеточия и пробелы также вставляют для разделения часов, минут, секунд и признаков am/pm .

Функции checkdate() и time() обычно используются в процессах принятия решений. Поэтому они подробнее будут рассмотрены в дальнейшем.

Курс по PHP. Функции работы со строками в PHP

Частная коллекция качественных материалов для тех, кто делает сайты

  • Фотошоп-мастер2000+ уроков по фотошопу
  • Фото-монстр300+ уроков для фотографов
  • Видео-смайл200+ уроков по видеообработке
  • Жизнь в стиле «Кайдзен» Техники и приемы для гармоничной и сбалансированной жизни

В этом разделе помещены уроки по PHP скриптам, которые Вы сможете использовать на своих ресурсах.

Фильтрация данных с помощью zend-filter

Когда речь идёт о безопасности веб-сайта, то фраза «фильтруйте всё, экранируйте всё» всегда будет актуальна. Сегодня поговорим о фильтрации данных.

Контекстное экранирование с помощью zend-escaper

Обеспечение безопасности веб-сайта — это не только защита от SQL инъекций, но и протекция от межсайтового скриптинга (XSS), межсайтовой подделки запросов (CSRF) и от других видов атак. В частности, вам нужно очень осторожно подходить к формированию HTML, CSS и JavaScript кода.

Подключение Zend модулей к Expressive

Expressive 2 поддерживает возможность подключения других ZF компонент по специальной схеме. Не всем нравится данное решение. В этой статье мы расскажем как улучшили процесс подключение нескольких модулей.

Совет: отправка информации в Google Analytics через API

Предположим, что вам необходимо отправить какую-то информацию в Google Analytics из серверного скрипта. Как это сделать. Ответ в этой заметке.

Подборка PHP песочниц

Подборка из нескольких видов PHP песочниц. На некоторых вы в режиме online сможете потестить свой код, но есть так же решения, которые можно внедрить на свой сайт.

Совет: активация отображения всех ошибок в PHP

При поднятии PHP проекта на новом рабочем окружении могут возникнуть ошибки отображение которых изначально скрыто базовыми настройками. Это можно исправить, прописав несколько команд.

Агент

PHP парсер юзер агента с поддержкой Laravel, работающий на базе библиотеки Mobile Detect.

Строковые функции PHP

Несмотря на то, что эта глава написана скорее в духе справочника, материал, изложенный в ней, достаточно серьезен, хотя и не самый сложный для понимания. Умение грамотно работать со строками очень важно для программиста. Строковых функций в PHP немало, причем многие из них, так или иначе, просто дублируют друг друга. Однако, приемы работы с основными блоками функций (функции поиска и замены в тексте, функции удаления пробельных символом (trim-функции), функции форматного вывода) надо представлять очень четко.

Вообще говоря, по определению, строка – это последовательность символов типа char, которая заканчивается нулевым символом. Поэтому, можно, конечно, радоваться тому, что при работе со строками, нам не приходится жонглировать указателями в стиле C/C++, однако не стоит забывать о том, что цена этому удобству – быстродействие. Поэтому некоторые приводимые здесь функции мы будем обсуждать в том числе и с точки зрения их быстродействия.

Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:

Работа со строками в 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 .

Для примера найдём позицию, с которой начинается слово «на» в переменной $newstr :

Функция mb_strrpos() находит позицию не первого, а последнего вхождения подстроки в строке. Параметры у неё такие же.

Кроме того, существуют функции mb_stripos() и mb_strripos() , которые также находят позицию первого и последнего вхождения подстроки, но они не учитывают регистр символов.

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

str_replace (искомая подстрока, новая подстрока, строка, количество замен)

искомая подстрока — подстрока, которая будет заменена

новая подстрока — подстрока, на которую происходит замена

строка — строка, в которой производится замена

количество замен — количество замен, которое будет произведено. Необязательный параметр. Позволяет заменить не все вхождения, а только часть, например, только первое вхождение.

Для примера заменим в переменной $newstr слово «экран» на слово «страницу»:

Учитывайте, что эта функция не меняет значение переменной, она только возвращает новое значение, а сама переменная остаётся неизменной.

Вместо строки, в которой производится замена, может быть массив. Тогда замена будет сделана для всех элеменах массива и функция str_replace() также вернёт массив.

Вместо иcкомой подстроки и новой подстроки также могут быть массивы. Можно использовать одну подстроку для замены массива. Тогда все элементы массива будут заменены на новую подстроку.

Коприрование материалов сайта возможно только с согласия администрации

Добавить комментарий