WEB start

Компьютеры. Интернет. Профессиональное обучение. 055-966-10-17

hit 
counter

PHP программирование

Наши преимущества

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


Регистрация на сайте

PHP строковые переменные

Работа с текстовыми строками в PHP

Язык PHP поддержимает специальный тип переменных для работы с текстовыми строками - string. Строка - это набор символов. 

Строка может быть определена различными способами:

  • одинарными кавычками
  • двойными кавычками
  • heredoc-синтаксисом
  • nowdoc-синтаксисом

 

Примеры описания строк:

// echo 'это простая строка'; // echo "это строка - 2"; // heredoc-синтаксис $st2 = <<<MYSTRING Пример строки, охватывающей несколько строчек, с использованием heredoc-синтаксиса. MYSTRING; // nowdoc-синтаксис $st3 = <<<'MYSTRING' Пример текста, занимающего несколько строк, с помощью синтаксиса nowdoc. MYSTRING;

 

Если строка  выделяется двойными кавычками или при помощи heredoc, то интерпретатор языка производит с ней некоторые дейтвия до того, как использовать далее в программе:

  1. все имена переменных (начинающиеся с символа $), встреченные в строке заменяэтся на их значения
  2. определённые последовательности символов, начинающиеся с символа: \ (backslash) заменяются на специальные символы:
echo '<pre>Hi\tthere!</pre>'; // Выводит на экран: "Hi\tthere!" echo "<pre>Hi\tthere!</pre>"; // Выводит на экран: "Hi there!"

 

При использовании одинарных кавычек (или  nowdoc ) последовательность: \t так и выводится на экран. В случае использования двойных кавычек (или heredoc) \t интерпретируется как управляющий символ (ESC - sequense) и вставляет в строку табуляцию.

 

Управляющие последовательности (escaped characters)

 

Последовательность Значение
\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).

format

Строка формата состоит из нуля и более директив: обычных символов (за исключением %), которые копируются напрямую в результирующую строку, и описателей преобразований, каждый из которых заменяется на один из параметров.

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

  1. Необязательный описатель знака, указывающий как знак (- или +) будет применен к числу. По умолчанию, используется только знак минус, если число отрицательное. Этот описатель заставляет положительные числа также отображать знак плюс.
  2. Необязательный описатель заполнения, который определяет, какой символ будет использоваться для дополнения результата до необходимой длины. Это может быть пробел или 0. По умолчанию используется пробел. Альтернативный символ может быть указан с помощью одиночной кавычки ('). См. примеры ниже.
  3. Необязательный описатель выравнивания, определяющий выравнивание влево или вправо. По умолчанию выравнивается вправо, - используется для выравнивания влево.
  4. Необязательное число, описатель ширины, определяющий минимальное число символов, которое будет содержать результат этого преобразования.
  5. Необязательный описатель точности, указанный в виде точки (.), после которой следует необязательная строка из десятичных чисел, определяющая, сколько десятичных разрядов отображать для чисел с плавающей точкой. При использовании со строками этот описатель выступает в роли обрезающей точки, устанавливающей максимальный лимит символов. Также между точкой и цифрой можно указать символ, используемый при дополнении числа.
  6. Описатель типа, определяющий, как трактовать тип данных аргумента. Допустимые типы:

    • % - символ процента. Аргумент не используется.
    • b - аргумент трактуется как целое и выводится в виде двоичного числа.
    • c - аргумент трактуется как целое и выводится в виде символа с соответствующим кодом ASCII.
    • d - аргумент трактуется как целое и выводится в виде десятичного числа со знаком.
    • e - аргумент трактуется как число в в научной нотации (например, 1.2e+2). Описатель точности указывает на количество знаков после запятой, начиная с версии PHP 5.2.1. В более ранних версиях он обозначал количество значащих цифр (на один знак меньше).
    • E - аналогично %e, но использует заглавную букву (например, 1.2E+2).
    • f - аргумент трактуется как число с плавающей точкой и также выводится в зависимости от локали.
    • F - аргумент трактуется как число с плавающей точкой и также выводится, но без зависимости от локали. Доступно, начиная с версии PHP 5.0.3.
    • g - выбирает самую краткую запись из %e и %f.
    • G - выбирает самую краткую запись из %E и %f.
    • o - аргумент трактуется как целое и выводится в виде восьмеричного числа.
    • s - аргумент трактуется как строка.
    • u - аргумент трактуется как целое и выводится в виде десятичного числа без знака.
    • x - аргумент трактуется как целое и выводится в виде шестнадцатеричного числа (в нижнем регистре).
    • X - аргумент трактуется как целое и выводится в виде шестнадцатеричного числа (в верхнем регистре).

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

Обработка типов
Тип Спецификатор
string s
integer d, u, c, o, x, X, b
double g, G, e, E, f, F

Пример:

<html> <head> <title>Форматирование вывода </title> </head> <body> <?php $goods = array ("помидоры" => 15, "огурцы" => 12, "картофель" => 10); echo "<pre>"; printf ("%-25s%25s\n%'=50s\n", "Наименование", "Цена", ""); foreach ($goods as $nam => $prc) printf ("%'.-25s%'.22.2f\n", $nam, $prc); echo "</pre>"; ?> </body> </html>
Результат:
Наименование Цена =========================== помидоры..............15.00 огурцы................12.00 картофель.............10.00

 

 

 

Информация о строке, манипуляция строками

  • strlen() - возвращает длину строки
  • strstr() - ищет подстроку в строке
  • stristr() - работает так же, как и strstr(), но не различает регистры
  • strpos() - определяет позицию подстроки в строке
  • substr() - возвращает подстроку

Управление строками

  • ltrim(), chop(), trim() - удаляют все разделители соответственно в начале строки, в конце строки, в начале и конце строки. К разделителям относятся следующие символы: "\n" (новая строка), "\r"(возврат каретки), "\t" (табуляция), простой пробел.
  • str_replace() - заменяет все экземпляры указанной подстроки в строке на новую подстроку.
  • substr_replace() - заменяет часть строки, ограниченную параметрами.
  • strtoupper() - переводит символы строки в верхний регистр.
  • strtolower() - переводит символы строки в нижний регистр.
  • ucwords() - переводит в верхний регистр первый символ каждого слова.
  • explode() - разбивает строку на массив.
  • implode() -объединяет элементы массива со строкой.

 

 

 

PHP - функции работы со строками

 

Функция Описание
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 

Возможные кодировки:

  • k - koi8-r
  • w - windows-1251
  • i - iso8859-5
  • a - x-cp866
  • d - x-cp866
  • m - x-mac-cyrillic

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().

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

  1. Необязательный описатель знака, указывающий как знак (- или +) будет применен к числу. По умолчанию, используется только знак минус, если число отрицательное. Этот описатель заставляет положительные числа также отображать знак плюс.
  2. Необязательный описатель заполнения, который определяет, какой символ будет использоваться для дополнения результата до необходимой длины. Это может быть пробел или 0. По умолчанию используется пробел. Альтернативный символ может быть указан с помощью одиночной кавычки ('). См. примеры ниже.
  3. Необязательный описатель выравнивания, определяющий выравнивание влево или вправо. По умолчанию выравнивается вправо, - используется для выравнивания влево.
  4. Необязательное число, описатель ширины, определяющий минимальное число символов, которое будет содержать результат этого преобразования.
  5. Необязательный описатель точности, указанный в виде точки (.), после которой следует необязательная строка из десятичных чисел, определяющая, сколько десятичных разрядов отображать для чисел с плавающей точкой. При использовании со строками этот описатель выступает в роли обрезающей точки, устанавливающей максимальный лимит символов. Также между точкой и цифрой можно указать символ, используемый при дополнении числа.
  6. Описатель типа, определяющий, как трактовать тип данных аргумента. Допустимые типы:

    • % - символ процента. Аргумент не используется.
    • b - аргумент трактуется как целое и выводится в виде двоичного числа.
    • c - аргумент трактуется как целое и выводится в виде символа с соответствующим кодом ASCII.
    • d - аргумент трактуется как целое и выводится в виде десятичного числа со знаком.
    • e - аргумент трактуется как число в в научной нотации (например, 1.2e+2). Описатель точности указывает на количество знаков после запятой, начиная с версии PHP 5.2.1. В более ранних версиях он обозначал количество значащих цифр (на один знак меньше).
    • E - аналогично %e, но использует заглавную букву (например, 1.2E+2).
    • f - аргумент трактуется как число с плавающей точкой и также выводится в зависимости от локали.
    • F - аргумент трактуется как число с плавающей точкой и также выводится, но без зависимости от локали. Доступно, начиная с версии PHP 5.0.3.
    • g - выбирает самую краткую запись из %e и %f.
    • G - выбирает самую краткую запись из %E и %f.
    • o - аргумент трактуется как целое и выводится в виде восьмеричного числа.
    • s - аргумент трактуется как строка.
    • u - аргумент трактуется как целое и выводится в виде десятичного числа без знака.
    • x - аргумент трактуется как целое и выводится в виде шестнадцатеричного числа (в нижнем регистре).
    • X - аргумент трактуется как целое и выводится в виде шестнадцатеричного числа (в верхнем регистре).

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

Обработка типов
Тип Спецификатор
string s
integer d, u, c, o, x, X, b
double g, G, e, E, f, F
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() Переносит строку по указанному количеству символов