Язык PHP поддержимает специальный тип переменных для работы с текстовыми строками - string. Строка - это набор символов.
Строка может быть определена различными способами:
Примеры описания строк:
Если строка выделяется двойными кавычками или при помощи heredoc, то интерпретатор языка производит с ней некоторые дейтвия до того, как использовать далее в программе:
При использовании одинарных кавычек (или nowdoc ) последовательность: \t так и выводится на экран. В случае использования двойных кавычек (или heredoc) \t интерпретируется как управляющий символ (ESC - sequense) и вставляет в строку табуляцию.
Последовательность | Значение |
---|---|
\n | новая строка (LF или 0x0A (10) в ASCII) |
\r | возврат каретки (CR или 0x0D (13) в ASCII) |
\t | горизонтальная табуляция (HT или 0x09 (9) в ASCII) |
\v | вертикальная табуляция (VT или 0x0B (11) в ASCII) (с версии PHP 5.2.5) |
\e | escape-знак (ESC или 0x1B (27) в ASCII) (с версии PHP 5.4.4) |
\f | подача страницы (FF или 0x0C (12) в ASCII) (с версии PHP 5.2.5) |
\\ | обратная косая черта |
\$ | знак доллара |
\" | двойная кавычка |
[0-7]{1,3} | последовательность символов, соответствующая регулярному выражению символа в восьмеричной системе счисления, который молча переполняется, чтобы поместиться в байт (т.е. "\400" === "\000") |
\x[0-9A-Fa-f]{1,2} | последовательность символов, соответствующая регулярному выражению символа в шестнадцатеричной системе счисления |
\u{[0-9A-Fa-f]+} | последовательность символов, соответствующая регулярному выражению символа Unicode, которая отображается в строка в представлении UTF-8 (добавлено в PHP 7.0.0) |
В PHP есть функции, позволяющие форматировать текстовую строку до использования в программе. Форматирование строки производится сопоставлением самой строки со строкой спецификаций форматирования (format).
Строка формата состоит из нуля и более директив: обычных символов (за исключением %), которые копируются напрямую в результирующую строку, и описателей преобразований, каждый из которых заменяется на один из параметров.
Каждый описатель преобразований состоит из знака процента (%), за которым следует один или более дополнительных элементов (в том порядке, в котором они далее перечислены):
Описатель типа, определяющий, как трактовать тип данных аргумента. Допустимые типы:
Переменные будут преобразованы в соответвующий тип для спецификатора:
Тип | Спецификатор |
---|---|
string | s |
integer | d, u, c, o, x, X, b |
double | g, G, e, E, f, F |
Пример:
Функция | Описание | ||||||||
---|---|---|---|---|---|---|---|---|---|
addcslashes() | Вставляет символ обратная косая черта - \ перед заданными символами в строке | ||||||||
addslashes() | Вставляет символ - \ перед символами single quote (') double quote (") backslash (\) NULL найденными в строке |
||||||||
bin2hex() | Преобразует бинарные данные в шестнадцатиричное представление $binary = "11111001"; $hex = dechex(bindec($binary)); echo $hex; |
||||||||
chop() | Эта функция возвращает строку с удаленными из конца строки пробельными (или другими) символами. Если второй параметр не передан, rtrim() удаляет следующие символы: " " (ASCII 32 (0x20)), обычный пробел. "\t" (ASCII 9 (0x09)), символ табуляции. "\n" (ASCII 10 (0x0A)), символ перевода строки. "\r" (ASCII 13 (0x0D)), символ возврата каретки. "\0" (ASCII 0 (0x00)), NULL-байт. "\x0B" (ASCII 11 (0x0B)), вертикальная табуляция. // удаляем управляющие ASCII-символы с конца $binary // (от 0 до 31 включительно) $clean = rtrim($binary, "\x00..\x1F"); var_dump($clean); |
||||||||
chr() | Возвращает символ по коду <?php echo chr(52) . "<br>"; // Decimal value echo chr(052) . "<br>"; // Octal value echo chr(0x52) . "<br>"; // Hex value ?> |
||||||||
chunk_split($str, $n, $smb) | разбивает строку $str на равные части длиной $n и разделяет их символоми $smb $str = "Hello world!"; echo chunk_split($str,2,"."); |
||||||||
convert_cyr_string(string,from,to) | Меняет русскую кодировку строки string из кодировки from в кодировку to Возможные кодировки:
convert_cyr_string($str,'w','a'); |
||||||||
convert_uudecode() | Декодирует строку, закодированную при помощи convert_uuencode() | ||||||||
convert_uuencode(string) | Кодирование uuencode переводит строку string (включая бинарные символы) в последовательности печатных (7-битных) ASCII-символов, что позволяет безопасно обмениваться данными через сеть. Закодированные данные примерно на 35% больше оригинала. | ||||||||
count_chars() | Возвращает количество символов в строке | ||||||||
crc32(string) | Функция вычисляет CRC32 код для строки string. Это обычно используется для контроля целостности передаваемых данных. | ||||||||
crypt() | Возвращает хэшированную (закодированную) строку, полученную с помощью стандартного алгоритма UNIX, основанного на DES, или другого алгоритма, имеющегося в системе. | ||||||||
echo() | Печатает одну или несколько строк | ||||||||
explode(separator,string,limit) | Конвертирует строку string в массив, разделяя её по символу separator. delimiter Разделитель. stringВходная строка. limitЕсли аргумент limit является положительным, возвращаемый массив будет содержать максимум limit элементов, при этом последний элемент будет содержать остаток строки string. Если параметр limit отрицателен, то будут возвращены все компоненты кроме последних -limit. Если limit равен нулю, то он расценивается как 1. |
||||||||
fprintf() | Печатает отформатированную строку в определённый выходной поток | ||||||||
get_html_translation_table() | Возвращает таблицу преобразований, используемую функциями htmlspecialchars() и htmlentities() | ||||||||
hebrev() | Преобразует текст на иврите в визуальный текст | ||||||||
hebrevc() | Преобразует текст на иврите в визуальный текст и новые строки (\ n) в <br> | ||||||||
hex2bin() | Конвертирует строку шестнадцатеричных величин в символы ASCII | ||||||||
html_entity_decode(str,flags,char-set) | Преобразует объекты HTML в символы | ||||||||
htmlentities() | Преобразует символы в объекты HTML | ||||||||
htmlspecialchars_decode() | Преобразует некоторые предопределенные объекты HTML в символы | ||||||||
htmlspecialchars() | Преобразует некоторые предопределенные символы в объекты HTML | ||||||||
implode() | Конвертирует массив в строку | ||||||||
join() | Конвертирует массив в строку | ||||||||
lcfirst() | Преобразует первый символ строки в нижний регистр | ||||||||
levenshtein($str1, $str2) | Вычисляет расстояние Левенштейна между двумя строками. Расстояние Левенштейна - это минимальное количество вставок, замен и удалений символов, необходимое для преобразования str1 в str2. | ||||||||
localeconv() | Возвращает информацию о численном и денежном форматировании локали | ||||||||
ltrim() | Удаляет пробелы (или другие символы) из начала строки | ||||||||
md5() | Вычисляет хэш MD5 строки | ||||||||
md5_file() | Вычисляет хэш MD5 файла | ||||||||
metaphone() | Вычисляет ключ метафона строки | ||||||||
money_format() | Возвращает строку, отформатированную как строка валюты | ||||||||
nl_langinfo() | Возвращает определенную локальную информацию | ||||||||
nl2br() | Вставляет разрывы строк HTML перед каждой новой строкой строки | ||||||||
number_format() | Форматирует число сгруппированными тысячами | ||||||||
ord() | Возвращает значение ASCII первого символа строки | ||||||||
parse_str() | Разбирает строку запроса в переменные | ||||||||
print() | Выводит одну или несколько строк | ||||||||
printf() | Выводит форматированную строку | ||||||||
quoted_printable_decode() | Преобразует строку с кавычками для печати в 8-битную строку | ||||||||
quoted_printable_encode() | Преобразует 8-битную строку в строку с текстом в кавычках | ||||||||
quotemeta() | Убирает в кавычки метасимволы | ||||||||
rtrim() | Эта функция возвращает строку str с удаленными из конца строки пробельными (или другими) символами. Если второй параметр не передан, rtrim() удаляет следующие символы: " " (ASCII 32 (0x20)), обычный пробел. "\t" (ASCII 9 (0x09)), символ табуляции. "\n" (ASCII 10 (0x0A)), символ перевода строки. "\r" (ASCII 13 (0x0D)), символ возврата каретки. "\0" (ASCII 0 (0x00)), NULL-байт. "\x0B" (ASCII 11 (0x0B)), вертикальная табуляция. // удаляем управляющие ASCII-символы с конца $binary // (от 0 до 31 включительно) $clean = rtrim($binary, "\x00..\x1F"); var_dump($clean); |
||||||||
setlocale() | Устанавливает локальную информацию | ||||||||
sha1() | Вычисляет хэш SHA-1 для строки | ||||||||
sha1_file() | Вычисляет хэш SHA-1 для файла | ||||||||
similar_text() | Вычисляет сходство между двумя строками | ||||||||
soundex() | Вычисляет ключ soundex строки | ||||||||
sprintf(format,arg1,arg2,,,) | Возвращает стрроку, созданную из аргументов arg1,arg2, отформатированных строкой формат. format Строка формата состоит из нуля и более директив: обычных символов (за исключением %), которые копируются напрямую в результирующую строку, и описателей преобразований, каждый из которых заменяется на один из параметров. Это относится как к sprintf(), так и к printf(). Каждый описатель преобразований состоит из знака процента (%), за которым следует один или более дополнительных элементов (в том порядке, в котором они здесь перечислены):
Переменные будут преобразованы в соответвующий тип для спецификатора:
|
||||||||
sscanf() | Разбирает строку в соответствии с заданным форматом | ||||||||
str_getcsv() | Разбирает строку CSV в массив | ||||||||
str_ireplace() | Заменяет некоторые символы в строке (без учета регистра) | ||||||||
str_pad() | Дополняет строку до новой длины | ||||||||
str_repeat() | Повторяет строку определенное количество раз | ||||||||
str_replace() | Заменяет некоторые символы в строке (с учетом регистра) | ||||||||
str_rot13() | Выполняет кодировку ROT13 в строке | ||||||||
str_shuffle() | Случайно перемещает все символы в строке | ||||||||
str_split($string,$length) | Превращает строку $stringв массив раазбивая её на части длиной $length | ||||||||
str_word_count() | Считает количество слов в строке | ||||||||
strcasecmp() | Сравнивает две строки (без учета регистра) | ||||||||
strchr() | Находит первое вхождение строки внутри другой строки (алиас strstr ()) | ||||||||
strcmp() | Сравнивает две строки (с учетом регистра) | ||||||||
strcoll() | Сравнивает две строки (сравнение строк на основе локали) | ||||||||
strcspn() | Возвращает количество символов, найденных в строке, до того, как найдена какая-либо часть определенных символов | ||||||||
strip_tags() | Вырезает HTML и PHP теги из текстовой строки | ||||||||
stripcslashes() | Удаляет экранирование символов, произведенное функцией addcslashes() | ||||||||
stripslashes() | Удаляет экранирование символов, произведенное функцией addslashes() | ||||||||
stripos() | Возвращает позицию первого вхождения подстроки без учета регистра | ||||||||
stristr() | Регистронезависимый вариант функции strstr() | ||||||||
strlen() | Возвращает длину строки | ||||||||
strnatcasecmp() | Сравнение строк без учета регистра с использованием алгоритма "natural order" | ||||||||
strnatcmp() | Сравнение строк с использованием алгоритма "natural order" с учётом регистра | ||||||||
strncasecmp() | Бинарно-безопасное сравнение первых n символов строк без учета регистра (case-insensitive) | ||||||||
strncmp() | Бинарно-безопасное сравнение первых n символов строк (case-sensitive) | ||||||||
strpbrk() | Ищет в строке любой символ из заданного набора | ||||||||
strpos() | Возвращает позицию первого вхождения подстроки (case-sensitive) | ||||||||
strrchr() | Находит последнее вхождение символа в строке | ||||||||
strrev() | Переворачивает строку задом наперед | ||||||||
strripos() | Возвращает позицию последнего вхождения подстроки без учета регистра | ||||||||
strrpos() | Возвращает позицию последнего вхождения подстроки в строке (case-sensitive) | ||||||||
strspn() | Возвращает длину участка в начале строки, полностью соответствующего маске | ||||||||
strstr() | Находит первое вхождение подстроки (case-sensitive) | ||||||||
strtok() | strtok() разбивает строку str на подстроки (токены), используя в качестве разделителей символы из token. Например, строку "This is an example string" можно разбить на отдельные слова используя пробел в качестве разделителя. | ||||||||
strtolower() | Возвращает строку string, в которой все буквенные символы переведены в нижний регистр. | ||||||||
strtoupper() | Возвращает строку string, в которой все буквенные символы переведены в верхний регистр. | ||||||||
strtr() | Преобразует заданные символы или заменяет подстроки. | ||||||||
substr() | Возвращает подстроку | ||||||||
substr_compare() | Бинарно-безопасное сравнение 2 строк со смещением, с учетом или без учета регистра | ||||||||
substr_count() | Возвращает число вхождений подстроки | ||||||||
substr_replace() | Возвращает число вхождений подстроки | ||||||||
trim() | Удаляет пробелы или другие символы с обеих сторон строки | ||||||||
ucfirst() | Преобразует первый символ строки в верхний регистр | ||||||||
ucwords() | Преобразует в верхний регистр первый символ каждого слова в строке | ||||||||
vfprintf() | Записывает строку, отформатированную в соответствии с параметром format в поток handle. Данная функция похожа на fprintf(), но принимает не переменное число аргументов, а массив. int vfprintf ( resource $handle , string $format , array $args ) |
||||||||
vprintf() | Выводит отформатированную строку int vprintf ( string $format , array $args ) Выводит значения массива, отформатированные в соответствии с аргументом format, описанном в документации функции sprintf(). |
||||||||
vsprintf() | Возвращает отформатированную строку | ||||||||
wordwrap() | Переносит строку по указанному количеству символов |