PHP: Строки — Manual
- Введение
- Установка и настройка
- Требования
- Установка
- Настройка во время выполнения
- Типы ресурсов
- Предопределённые константы
- Функции для работы со строками
- 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 — Преобразует текст на иврите из логической кодировки в визуальную с преобразованием перевода строки
- hex2bin — Преобразует шестнадцатеричные данные в двоичные
- html_entity_decode — Преобразует HTML-сущности в соответствующие им символы
- htmlentities — Преобразует все возможные символы в соответствующие HTML-сущности
- htmlspecialchars_decode — Преобразует специальные HTML-сущности обратно в соответствующие символы
- htmlspecialchars — Преобразует специальные символы в HTML-сущности
- implode — Объединяет элементы массива в строку
- join — Псевдоним implode
- lcfirst — Преобразует первый символ строки в нижний регистр
- levenshtein — Вычисляет расстояние Левенштейна между двумя строками
- localeconv — Возвращает информацию о форматировании чисел
- ltrim — Удаляет пробелы (или другие символы) из начала строки
- md5_file — Возвращает MD5-хеш файла
- md5 — Возвращает MD5-хеш строки
- metaphone — Возвращает ключ metaphone для строки
- money_format — Форматирует число как денежную величину
- nl_langinfo — Возвращает информацию о языке и локали
- nl2br — Вставляет HTML-код разрыва строки перед каждым переводом строки
- number_format — Форматирует число с разделением групп
- ord — Конвертирует первый байт строки в число от 0 до 255
- parse_str — Разбирает строку в переменные
- print — Выводит строку
- printf — Выводит отформатированную строку
- quoted_printable_decode — Преобразует строку, закодированную методом quoted-printable в 8-битную строку
- quoted_printable_encode — Преобразует 8-битную строку с помощью метода quoted-printable
- quotemeta — Экранирует специальные символы
- rtrim — Удаляет пробелы (или другие символы) из конца строки
- setlocale — Устанавливает настройки локали
- sha1_file — Возвращает SHA1-хеш файла
- sha1 — Возвращает SHA1-хеш строки
- similar_text — Вычисляет степень похожести двух строк
- soundex — Возвращает ключ soundex для строки
- sprintf — Возвращает отформатированную строку
- sscanf — Разбирает строку в соответствии с заданным форматом
- str_contains — Определяет, содержит ли строка заданную подстроку
- str_ends_with — Проверяет, заканчивается ли строка заданной подстрокой
- str_getcsv — Выполняет разбор CSV-строки в массив
- str_ireplace — Регистронезависимый вариант функции str_replace
- str_pad — Дополняет строку другой строкой до заданной длины
- str_repeat — Возвращает повторяющуюся строку
- str_replace — Заменяет все вхождения строки поиска на строку замены
- str_rot13 — Выполняет преобразование ROT13 над строкой
- str_shuffle — Переставляет символы в строке случайным образом
- str_split — Преобразует строку в массив
- str_starts_with — Проверяет, начинается ли строка с заданной подстроки
- str_word_count — Возвращает информацию о словах, входящих в строку
- strcasecmp — Бинарно-безопасное сравнение строк без учёта регистра
- strchr — Псевдоним strstr
- strcmp — Бинарно-безопасное сравнение строк
- strcoll — Сравнение строк с учётом текущей локали
- strcspn — Возвращает длину участка в начале строки, не соответствующего маске
- strip_tags — Удаляет теги HTML и PHP из строки
- stripcslashes — Удаляет экранирование символов, произведённое функцией addcslashes
- stripos — Возвращает позицию первого вхождения подстроки без учёта регистра
- stripslashes — Удаляет экранирование символов
- stristr — Регистронезависимый вариант функции strstr
- strlen — Возвращает длину строки
- strnatcasecmp — Сравнение строк без учёта регистра с использованием алгоритма «natural order»
- strnatcmp — Сравнение строк с использованием алгоритма «natural order»
- 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 — Преобразует в верхний регистр первый символ каждого слова в строке
- utf8_decode — Преобразует строку из UTF-8 в ISO-8859-1, заменяя недопустимые или непредставимые символы
- utf8_encode — Преобразует строку из ISO-8859-1 в UTF-8
- vfprintf — Записывает отформатированную строку в поток
- vprintf — Выводит отформатированную строку
- vsprintf — Возвращает отформатированную строку
- wordwrap — Переносит строку по указанному количеству символов
- Список изменений
+add a note
User Contributed Notes
There are no user contributed notes for this page.
Особенности условных конструкции со строками в PHP / Хабр
На Хабре часто обсуждается какой язык лучше для написания безопасных приложений. При этом часто отмечается, что PHP спроектирован таким образом, что начинающий разработчик будет допускать ошибки, приводящие к дырам безопасности. В этом хабрапосте я хочу рассказать о, на мой взгляд, нелогичном поведении операций сравнения, операторов if и switch при работе со строками. Опытным разработчикам данные особенности известны, но решил все же собрать их в одном месте. Думаю пост будет полезен начинающим разработчикам и тем, кто работает в PHP, имея опыт программирования на других языках.Что есть истина?
Какие строки истинны? Рассмотрим пример:echo ‘»» is ‘. (»?’true’:’false’). «\n»;
echo ‘«0» is ‘. (‘0′?’true’:’false’). «\n»;
echo ‘»-0″ is ‘. (‘-0′?’true’:’false’). «\n»;
echo ‘«00» is ‘. (’00’?’true’:’false’). «\n»;
echo ‘«A» is ‘. (‘A’?’true’:’false’). «\n»;Имеем:»» is false
«0» is false
«-0» is true
«0.0» is true
«00» is true
«A» is true
Итак истинны все непустые строки, кроме строки «0». Логика такого поведения для меня не ясна. На практике часто с помощью оператора if проверяется заполнено ли поле формы, например:if(isset($_GET[‘income’]) && $_GET[‘income’]) {… }Такая проверка примет поле, в котором указан 0 за незаполненное. Чтобы избежать возможного недоразумения, следует использовать проверку в виде: if(isset($_GET[‘income’]) && strlen($_GET[‘income’])) {… }
Сравнение с участием строк
В PHP два оператора сравнения == и ===. Второй оператор сравнивает совпадение типов и значений, первый производит преобразование типа, а затем выполняет сравнение. Особенность оператора == в том, что при сравнении числа и строки, просходит преобразование строки в число. Если строка не представляет собой число, то она преобразуется в числовое значение 0. Рассмотрим пример:echo ‘«A»==0 is ‘. (‘A’==0?’true’:’false’). «\n»;echo ‘«A»==0.0 is ‘. (‘A’==0?’true’:’false’). «\n»;
echo ‘«A»===0.0 is ‘. (‘A’===0?’true’:’false’). «\n»;Результат работы скрипта:«A»==0 is true
«A»===0 is false
«A»==0.0 is true
«A»===0.0 is falseЕсли ваша функция сравнивает строку, переданную в качестве аргумента с заданной строкой, то следует предварительно проверить, что в качестве аргумента передана строка, а не число. Пример будет приведен далее, при рассмотрении оператора switch.
Оператор switch
Мы ожидаем, что оператор switch сравнивает переданное значение с заданными константами. Особенность реализации switch в php в том, что он производит сравнение с помощью оператора ==, то есть не производит сравнение типов. В качестве примера рассмотрим вымышленную функцию, которая возвращает зарплату сотрудника, получая его имя на входе:<?phpswitch($name) {
case ‘John’:
return 3400;
break;
case ‘Mary’:
return 4600;
break;
default:
return 0;
}
}
echo «John’s salary is ». get_salary(‘John’). «\n»;
echo «Mary’s salary is ». get_salary(‘Mary’). «\n»;
echo «Peter’s salary is ». get_salary(‘Peter’). «\n»;
echo «0’s salary is ». get_salary(0). «\n»;
?>Результат работы скрипта:John’s salary is 3400
Mary’s salary is 4600
Peter’s salary is 0
0’s salary is 3400На примере видно, что безопасность функции скомпрометирована путем передачи числового значения вместо строкового. Чтобы защитить функцию от нежелательного использования, требуется проверять тип входного значения.<?php
function get_salary($name) {
if(!is_string($name)) return 0;
switch($name) {
case ‘John’:
return 3400;
break;
case ‘Mary’:
return 4600;
break;
default:
return 0;
}
}
echo «John’s salary is ». get_salary(‘John’). «\n»;
echo «Mary’s salary is ». get_salary(‘Mary’). «\n»;
echo «Peter’s salary is ». get_salary(‘Peter’). «\n»;
echo «0’s salary is ». get_salary(0). «\n»;
?>Результат работы скрипта:John’s salary is 3400
Mary’s salary is 4600
Peter’s salary is 0
0’s salary is 0Итак, некоторые операции сравнения ведут себя контринтуитивно. Кто предупрежден, тот вооружен.
Кросспост Особенности условных конструкции со строками в PHP с webew.ru.
строковых функций PHP. Уроки для начинающих. W3Schools на английском языке
❮ Назад Далее ❯
Строковые функции PHP являются частью ядра PHP. Для использования этих функций установка не требуется.
Функция | Описание |
---|---|
addcslashes() | Возвращает строку с обратной косой чертой перед указанными символами |
добавляет слеши() | Возвращает строку с обратной косой чертой перед предопределенными символами |
bin2hex() | Преобразует строку символов ASCII в шестнадцатеричные значения |
отбивная() | Удаляет пробелы или другие символы с правого конца строки |
хр() | Возвращает символ из указанного значения ASCII |
chunk_split() | Разбивает строку на несколько более мелких частей |
convert_cyr_string() | Преобразует строку из одного кириллического набора символов в другой |
convert_uudecode() | Декодирует незакодированную строку |
convert_uuencode() | Кодирует строку с использованием алгоритма uuencode |
count_chars() | Возвращает информацию о символах, используемых в строке |
crc32() | Вычисляет 32-битный CRC для строки |
крипт() | Одностороннее хеширование строк |
эхо() | Выводит одну или несколько строк |
взорвать() | Разбивает строку на массив |
fprintf() | Записывает отформатированную строку в указанный выходной поток |
get_html_translation_table() | Возвращает таблицу перевода, используемую htmlspecialchars() и htmlentities() |
иврит () | Преобразует текст на иврите в визуальный текст |
hebrevc() | Преобразует текст на иврите в визуальный текст и новые строки (\n) в |
hex2bin() | Преобразует строку шестнадцатеричных значений в символы ASCII |
html_entity_decode() | Преобразует объекты HTML в символы |
htmlentities() | Преобразует символы в объекты HTML |
htmlspecialchars_decode() | Преобразует некоторые предопределенные объекты HTML в символы |
htmlspecialchars() | Преобразует некоторые предопределенные символы в объекты HTML |
взорваться() | Возвращает строку из элементов массива |
присоединиться() | Псевдоним implode() |
lcfirst() | Преобразует первый символ строки в нижний регистр |
Левенштейн() | Возвращает расстояние Левенштейна между двумя строками |
localeconv() | Возвращает информацию о числовом и денежном форматировании локали |
ltrim() | Удаляет пробелы или другие символы с левой стороны строки |
md5() | Вычисляет хэш MD5 строки |
md5_file() | Вычисляет хэш MD5 файла |
метафон() | Вычисляет ключ метафона строки |
money_format() | Возвращает строку в формате денежной строки |
nl_langinfo() | Возвращает конкретную локальную информацию |
nl2br() | Вставляет разрывы строк HTML впереди каждой новой строки в строке |
число_формат() | Форматирует число со сгруппированными тысячами |
порядок() | Возвращает значение ASCII первого символа строки |
parse_str() | Разбирает строку запроса на переменные |
печать() | Выводит одну или несколько строк |
printf() | Выводит форматированную строку |
quoted_printable_decode() | Преобразует строку для печати в кавычках в 8-битную строку |
quoted_printable_encode() | Преобразует 8-битную строку в печатную строку в кавычках |
кавычка() | Метасимволы кавычек |
rtrim() | Удаляет пробелы или другие символы с правой стороны строки |
setlocale() | Устанавливает информацию о локали |
ша1() | Вычисляет хэш SHA-1 строки |
sha1_file() | Вычисляет хэш SHA-1 файла |
подобный_текст() | Вычисляет сходство между двумя строками |
звук() | Вычисляет ключ soundex строки |
спринтф() | Записывает отформатированную строку в переменную |
sscanf() | Разбирает ввод из строки в соответствии с форматом |
str_getcsv() | Разбирает строку CSV в массив |
str_ireplace() | Заменяет некоторые символы в строке (без учета регистра) |
str_pad() | Дополняет строку до новой длины |
str_repeat() | Повторяет строку указанное количество раз |
str_replace() | Заменяет некоторые символы в строке (с учетом регистра) |
str_rot13() | Выполняет кодирование ROT13 для строки |
str_shuffle() | Случайным образом перемешивает все символы в строке |
str_split() | Разбивает строку на массив |
str_word_count() | Подсчитать количество слов в строке |
strcasecmp() | Сравнивает две строки (без учета регистра) |
стрхр() | Находит первое вхождение строки внутри другой строки (псевдоним strstr()) |
strcmp() | Сравнивает две строки (с учетом регистра) |
стрколл() | Сравнивает две строки (сравнение строк на основе локали) |
стркспн() | Возвращает количество символов, найденных в строке, прежде чем будет найдена какая-либо часть некоторых указанных символов |
strip_tags() | Удаляет теги HTML и PHP из строки |
полосы косой черты () | Отменяет кавычки строки, цитируемой с помощью addcslashes() |
полоски () | Отменяет кавычки строки, цитируемой с помощью addlashes() |
полосы() | Возвращает позицию первого вхождения строки внутри другой строки (без учета регистра) |
строка() | Находит первое вхождение строки внутри другой строки (без учета регистра) |
строка() | Возвращает длину строки |
strnatcasecmp() | Сравнивает две строки, используя алгоритм «естественного порядка» (без учета регистра) |
стрнаткмп() | Сравнивает две строки, используя алгоритм «естественного порядка» (с учетом регистра) |
strncasecmp() | Сравнение строк первых n символов (без учета регистра) |
strncmp() | Сравнение строк первых n символов (с учетом регистра) |
стрпбрк() | Ищет в строке любой набор символов |
строка() | Возвращает позицию первого вхождения строки внутри другой строки (с учетом регистра) |
стррхр() | Находит последнее вхождение строки внутри другой строки |
стррев() | Переворачивает строку |
стрипос() | Находит позицию последнего вхождения строки внутри другой строки (без учета регистра) |
стррпос() | Находит позицию последнего вхождения строки внутри другой строки (с учетом регистра) |
стрспн() | Возвращает количество символов, найденных в строке, содержащей только символы из указанного списка символов. |
улстр() | Находит первое вхождение строки внутри другой строки (с учетом регистра) |
стрток() | Разбивает строку на более мелкие строки |
strtolower() | Преобразует строку в строчные буквы |
sttoupper() | Преобразует строку в буквы верхнего регистра |
стртр() | Переводит определенные символы в строке |
подстрока() | Возвращает часть строки |
substr_compare() | Сравнивает две строки с указанной начальной позиции (безопасно для двоичных файлов и, возможно, с учетом регистра) |
substr_count() | Подсчитывает, сколько раз подстрока встречается в строке |
substr_replace() | Заменяет часть строки другой строкой |
отделка() | Удаляет пробелы или другие символы с обеих сторон строки |
ucfirst() | Преобразует первый символ строки в верхний регистр |
ucword() | Преобразует первый символ каждого слова в строке в верхний регистр |
vfprintf() | Записывает отформатированную строку в указанный выходной поток |
vprintf() | Выводит форматированную строку |
vsprintf() | Записывает отформатированную строку в переменную |
перенос слов() | Переносит строку на заданное количество символов |
❮ Назад Далее ❯
Управление и обработка текста с помощью Lecturely
Строка представляет собой комбинацию символов и строковых функций в языке программирования, используемых для управления строками. Например:
$string = «Функции обработки строк PHP»;
Разница между строками в одинарных и двойных кавычках в Php
В строках в одинарных кавычках переменные не интерпретируются, и вся строка печатается как есть. Однако в строках с двойными кавычками PHP должен анализировать переменные, проверять их значения и соответствующим образом печатать.
Пример кода
’; // одинарные кавычки echo «Меня зовут $var»; // двойные кавычки ?>
Проверь себя
Экранирующая последовательность в Php:
Экранирующая последовательность используется для экранирования символа при синтаксическом анализе строки и придания ему дополнительного значения, такого как разрывы строк, табуляции и т. д. Экранирующие последовательности работают в строках с двойными кавычками. Escape-последовательности начинаются с обратной косой черты(), за которой следует символ. Escape-последовательности, используемые в PHP, следующие:
| Заменяется одинарной кавычкой |
| Заменяется двойной кавычкой |
| Чтобы добавить разрывы строк в строке |
| Чтобы добавить вкладку |
| Для возврата каретки |
| Заменяется самим знаком доллара |
Пример кода
\»»; // вывод будет: // «Программирование на PHP.» ?>
Проверь себя
Функции обработки строк Php
Имя функции | Описание | |
---|---|---|
addcslash | Возвращает строку после добавления обратной косой черты перед указанным символом | |
добавляет слеши | Возвращает строку после добавления обратной косой черты перед предопределенными символами | |
bin2hex | Преобразует двоичное в шестнадцатеричное | |
отбивная | Удаляет пробел или любой другой предопределенный символ с правого конца строки | |
чр | Преобразует число в однобайтовую строку | |
чанк_сплит | Разбивает строку на более мелкие фрагменты | |
convert_cyr_string | Преобразует один набор символов кириллицы в другой | |
convert_uudecode | Декодирует незакодированную строку | |
convert_uuencode | Кодирует строку в алгоритме кодирования uuencode convert_uuencode(string) //синтаксис | |
количество символов | Информация о символах, используемых в строке | |
crc32 | Вычисляет crc32 строки | |
склеп | Одностороннее хеширование строк | |
эхо | Вывести данные или результат на экран | |
взорвать | Разбивает строку на массив | |
fprintf | Записывает форматированную строку в любой поток | |
get_html_translation_table | Возвращает таблицу перевода, используемую htmlspecialchars и htmlentities get_html_translation_table(table, flag, encoding) //синтаксис | |
иврит | Преобразует текст на иврите в визуальный текст | |
иврит | Преобразует текст на иврите в визуальный текст | |
hex2bin | Преобразует шестнадцатеричный формат в двоичный | |
html_entity_decode | Преобразует объекты html в символы | |
htmlсущности | Преобразует символы в объекты html | |
htmlspecialchars_decode | Преобразует специальные объекты HTML в символы | |
htmlспециальные символы | Преобразует специальные символы в объекты HTML | |
взорвать | Связывает массив в строку implode(binder, array) //синтаксис | |
присоединиться к | Связывает массив в строку | |
lcfirst | Преобразует первый символ строки в нижний регистр | |
Левенштейн | Возвращает расстояние Левенштейна между двумя строками. Количество символов, которые будут заменены для преобразования строки 1 в строку 2. | |
местная конв | Возвращает информацию о числовом формате | |
лтрим | Удаляет пробелы и другие предопределенные символы с левой стороны строки | |
мд5 | Вычисляет хеш md5 строки | |
md5_file | Вычисляет md5-хэш файла | |
метафон | Вычисляет метафонный ключ строки | |
деньги_формат | Форматирует число как валюту | |
nl_langinfo | Информация о локали | |
nl2br | Вставляет разрывы строк HTML перед всеми новыми строками | |
номер_формат | Форматы до номера | |
или | Возвращает значение ASCII первого символа строки | |
parse_str | Чтобы преобразовать строку запроса в переменную | |
печать | Используется для вывода строки | |
печать | Печатает форматированную строку | |
quoted_printable_decode | Преобразует печатную строку в кавычках в 8-битную строку | |
quoted_printable_encode | Преобразует 8-битную строку в печатную строку в кавычках | |
цитатамета | Метасимволы кавычек | |
ободок | Удаляет пробел или указанные символы с правой стороны строки | |
setlocale | Устанавливает информацию о локали | |
ша1 | Вычисляет хэш SHA-1 строки | |
sha1_file | Вычисляет хэш SHA-1 файла | |
похожий_текст | Проверяет сходство между двумя строками | |
саундекс | Вычисляет ключ soundex строки | |
спринтф | Возвращает отформатированную строку | |
сканф | Преобразует ввод из строки в соответствии с заданным форматом | |
ул_getcsv | Преобразует строку CSV в массив | |
улица_ireplace | Нечувствителен к регистру при замене некоторых символов в строке. | |
ул_пад | Дополняет строку до указанной длины | |
стр_повтор | Повторяет строку заданное количество раз | |
ул_заменить | Заменяет указанные символы в строке | |
стр_рот13 | Кодирует строку методом ROT13 | |
str_shuffle | Случайно перемешивает строку | |
ул_сплит | Разбивает строку на массив | |
str_word_count | Подсчитывает количество слов в строке | |
стркацекмп | Сравнение строк без учета регистра | |
стрчр | Проверяет первое вхождение строки | |
стркмп | Сравнение строк с учетом регистра | |
стрколл | Сравнение строк на основе локали | |
стркспн | Возвращает количество чисел, найденных в строке перед соответствующей маской | |
strip_tags | Удаляет теги HTML и PHP из строки | |
полосы косой черты | Отменяет кавычки строки, заключенной в кавычки addcslashes | |
полосы косая черта | Отменяет кавычки строки в кавычках | |
полосы | Нечувствительный к регистру поиск строки для первого вхождения строки внутри другой | |
стр. | Поиск первого вхождения строки внутри другой строки без учета регистра. | |
стрлен | Возвращает длину строки | |
strnatcasecmp | Сравнение двух строк без учета регистра с использованием алгоритма естественного порядка | |
стрнаткмп | Сравнение двух строк с учетом регистра с использованием алгоритма естественного порядка | |
strncasecmp | Сравнение строк без учета регистра для первых n символов | |
стрнкмп | Сравнение строк с учетом регистра для первых n символов | |
стрпбрк | Поиск строки для любого набора символов | |
стрпос | Проверяет строку на позицию первого вхождения указанной строки. |