- •Лекция 4 Манипулирование строками и регулярные выражения
- •Форматирование строк
- •Усечение строк
- •Форматирование строк для представления Использование html- форматирования
- •Форматирование строк для печати
- •Форматирование строк для хранения
- •Объединение и разделение строк с помощью строковых функций
- •Сравнение строк
- •Упорядочение строк
- •Проверка длины строк
- •Сопоставление и замена подстрок с помощью строковых функций
- •Поиск строк в строках
- •Определение позиции подстроки
- •Замена подстрок
- •Регулярные выражения
- •Наборы символов и классы
- •Повторение
- •Подвыражения
- •Ветвление
- •Поиск подстрок с помощью регулярных выражений
- •Замена подстрок с помощью регулярных выражений
- •Разделение строк с помощью регулярных выражений
Форматирование строк для представления Использование html- форматирования
Для HTML - форматирования используется функция nlbr(). Она принимает строку в качестве параметра и заменяет в ней все символы новой строки дескриптором <BR>. Это полезно при выводе длинной строки в окне браузера. Например, можно использовать данную функцию для форматирования отзыва клиента с целью вывода его на экран:
<p>Your feedback (shown below) has been sent.</p>
<p><? echo nl2br($mailcontent); ?> </p>
Форматирование строк для печати
До сих пор мы использовали функцию echo для вывода строк в окно браузера. PHP поддерживает также функцию print(), которая выполняет ту же задачу, но поскольку она является функцией, то возвращает значение 0 или 1, в зависимости от успешности выполнения. Обе эти конструкции выводят строку как есть.
Используя функции printf() и sprintf(), можно применять более сложное форматирование. Прототипы этих функций:
string sprintf (string format [, mixed args ...]);
int printf (string format [, mixed args ...]);
В качестве первого параметра обеим этим функциям передается строка формата, описывающая основную форму ввода, в которой вместо переменных используются коды форматирования. Остальными параметрами являются переменные, которые будут подставляться в строку формата. Например, в конструкции echo были использованы переменные, которые нужно вывести в строке:
echo “Итоговая сумма $Total”;
Для получения того же результата с помощью функции printf() следовало бы применить
printf (“Итоговая сумма %s”, $total);
Последовательность %s в строке формата называется спецификацией преобразования и означает “заменить строкой”. В данном случае она будет заменена значением переменной $total, интерпретируемым в качестве строки. Если бы значением, хранящимся в переменной $total, было 12.4, оба приведенных выражения привели к выводу 12.4.
Преимущества использования функции printf() в том, что можно использовать более удобную спецификацию преобразования для указания того, что в действительности $total – число с плавающей точкой, и оно должно содержать два знака после десятичной точки.
printf (“Итоговая сумма %.2f”, $total);
Строка формата может содержать несколько спецификаций преобразования. При использовании n спецификаций преобразования после строки формата необходимо указать n аргументов. Каждая спецификация преобразования будет заменена переформатированным аргументом в том порядке, в каком они перечислены. Например:
printf (“Итоговая сумма %.2f (с доставкой %.2f) ”, $total, $total_shipping);
Все спецификации преобразования имеют одинаковый формат
% [ дополняющий_символ][-][ширина][.точность] тип
Дополняющий символ используется для дополнения переменной до указанной ширины. Примером может служить добавление нулей к такому числу, как значение счетчика. Символ “-“ указывает, что данные в поле будут выравниваться по левому краю, а не по правому, как определено по умолчанию. Параметр ширина указывает функции, сколько места (в символах) необходимо для подстановки значения переменной. Параметр точность определяет количество отображаемых знаков после запятой. Последним параметром спецификации является код типа.
Тип |
Описание |
b |
Интерпретируется как целое число и выводится как двоичное число |
c |
Интерпретируется как целое число и выводится как символ |
d |
Интерпретируется как целое число и выводится как десятичное число |
f |
Интерпретируется как число двойной точности и выводится как число с плавающей точкой |
o |
Интерпретируется как целое число и выводится как восьмеричное число |
s |
Интерпретируется как строка и выводится как строка |
x |
Интерпретируется как целое число и выводится как шестнадцатеричное число с представлением цифр строчными буквами |
X |
Интерпретируется как целое число и выводится как шестнадцатеричное число с представлением цифр прописными буквами |