- •Переменные
- •Внешние переменные
- •Константы
- •Типы данных в рнр. Преобразование типов
- •Операторы
- •2. Операторы языка php Операторы выбора/ if...Else
- •Операторы выбора/ Переключатель switch
- •Операторы цикла
- •Операторы цикла/ While
- •Операторы цикла/ Do…while
- •Операторы цикла/ For
- •3. Строковые функции php
- •Функция htmlspecialchars
- •Функции поиска в тексте
- •Функции strlen(), chr() и ord()
- •Trim-функции (функции удаления пробельных символов)
- •Функции форматного вывода. Спецификаторы преобразования
- •Функция sscanf()
- •Функции преобразования кодировки
- •Функции работы с бинарными данными
- •Функции работы с блоками текста
- •Функции объединения/разделения строк
- •Функции сравнения строк
- •Функции работы с url
- •Функции преобразования регистра
- •Заключение к главе 3
- •4. Массивы Инициализация массивов
- •Цикл foreach для обхода массивов
- •Многомерные массивы
- •Функция count()
- •Функция in_array()
- •Функция reset()
- •Функции сортировки массивов
- •Работа с курсором (указатель) массива
- •Функция array_walk()
- •Функции Определения и вызовы функций
- •Время жизни переменной
- •Что такое рекурсия
- •Работа с файлами Открытие файлов
- •Отображение файлов
- •Закрытие файлов
- •Чтение из файлов и запись в файлы Чтение из файлов
- •Запись в файлы
- •Копирование, переименование и удаление файлов
- •Атрибуты файлов
- •Перемещение по файлам
- •Работа с каталогами
- •Методы put и post
- •7. Регулярные выражения
- •Базовый синтаксис и создание регулярных выражений
- •Групповой символ
- •Исключающее выражение
- •Квалификаторы
- •Границы
- •Подвыражения
- •Соответствие началу и концу строки
- •Сопоставление со специальными символами
- •Классы символов
- •Функции для работы с регулярными выражениями
- •Perl-совместимые регулярные выражения
- •8. Сессии и cookie в php Сессии (сеансы) в php
- •Открытие сессии
- •Регистрация переменных сессии
- •Закрытие сессии
- •Пример простой сессии
- •Установка cookies
- •Пример простого приложения с cookies
- •Установка срока годности cookies
- •Удаление cookie
- •Проблемы безопасности, связанные с cookies
- •Установка области видимости cookie
- •Шифрование
- •Ограничение доступа для доменов
- •Отправка cookies по защищенному запросу
- •9. Работа с ftp средствами php Основные возможности php при работе с ftp
- •Соединение с ftp-сервером
- •Регистрация на ftp-сервере
- •Закрытие соединения
- •Загрузка файлов с сервера
- •Другие возможности при работе с ftp
- •Переход в родительский каталог
- •Работа через брандмауэр
- •10. Проверка корректности данных Проверка корректности данных
- •Проверка на пустоту поля
- •Проверка допустимости вводимых данных
- •Удаление html - тегов и обратных слешей
- •11. Пишем гостевую книгу на php
- •Добавление записи
- •Реляционные базы данных
- •Индексы
- •Первичные ключи
- •Способы задания первичного ключа
- •Нормализация базы данных
- •Работа с сервером MySql
- •Язык sql
- •Команды sql
- •Типы полей базы данных
Функции strlen(), chr() и ord()
strlen() |
chr() |
ord() |
strlen()
возвращает длину строки, которую принимает в качестве аргумента:
<?
$string = "Hello, world!!!";
$string_len = strlen($string);
echo ($string_len);
?>
chr()
Эта функция принимает в качестве аргумента ASCII код символа и возвращает соответствующий этому коду фактический символ:
<?
$str = chr(36);
echo ($str); // возвращает символ "$"
?>
ord()
Выполняет действие, обратное функции chr():
<?
$str = ord('$');
echo($str); // возвращает 36
?>
Trim-функции (функции удаления пробельных символов)
trim() |
ltrim() |
rtrim() |
chop() |
Это очень полезная группа функций, без которых сложно обойтись при работе со строками. К пробельным символам относятся символы "\n", "\r", "\t", "\v", "\0" и собственно пробел. Особенно часто мы с этими функциями будем работать при изучении файлового ввода-вывода.
trim()
Эта функция принимает в качестве своего единственного аргумента строку, и удаляет из нее пробелы слева и справа.
Пример:
<?
$string = trim(" Hello, world! ");
?>
Давайте для того, чтобы убедиться, что эта функция нас не обманывает, выведем ее длину до и после удаления из нее пробелов. Напишем вот такой простенький скриптик:
<?
$str = " Hello, world! ";
$str1 = trim(" Hello, world! ");
$str_len = strlen($str);
$str1_len = strlen($str1);
echo(" размер исходной строки '$str' = $str_len, <br>
размер строки после удаления пробелов = $str1_len");
?>
И вот результат, доказывающий, что функция ведет себя вполне прилично:
Размер исходной строки 'Hello, world!' = 19, размер строки поле удаления пробелов = 13 |
ltrim(), rtrim() и chop()
Функция ltrim() удаляет из строки начальные пробельные символы (т.е., те которые слева); rtrim()– конечные пробельные символы. Функция chop() является синонимом функции rtrim().
Функции форматного вывода. Спецификаторы преобразования
printf() |
sprintf() |
sscanf() |
printf() и sprintf()
Синтаксис:
int printf(string format [, mixed args])
string sprintf(string format [, mixed args])
Об этих функциях мы поговорим несколько подробнее, чем о предыдущих функциях работы со строками, нами рассмотренных. Сразу скажем, что эти две функции предназначены для форматного вывода и что отличаются они тем, что функция printf() производит форматирование и выводит результаты в выходной поток (браузер или консоль), а sprintf() после осуществления требуемого форматирования просто возвращает строку.
С одной стороны этими функциями можно пользоваться просто как функциями вывода:
<?
printf("Hello!"); // выводит "Hello!"
sprintf("Hello!"); // сама по себе ничего не выводит,
$str = sprintf("Hello!"); // а просто возвращает строку,
printf($str); // которую затем можно вывести в выходной поток
?>
Но использовать их только так, как мы сейчас продемонстрировали – простое расточительство, так как эти функции способны на большее. Дело в том, что аргумент format этих функций представляет собой строку, содержащую специальные символы, использующиеся при форматировании данных, содержащихся в списке аргументов. Эти спецсимволы называются спецификаторами преобразования, а символы, которые остаются неизменными при форматировании строки, называют директивами.
Спецификация определяется символом "%", за которым может следовать до пяти спецификаторов в следующем порядке:
Спецификатор заполнения
Устанавливает символ, которым строка заполняется до заданного размера. По умолчанию используется пробел. Спецификатор заполнения действует только при наличии спецификатора минимальной ширины
Спецификатор выравнивания
По умолчанию дополнение строки до минимальной ширины производится с левого края (т.е., строка выравнивается по правому краю). Если добавлен символ дефиса, то строка выравнивается по левому краю
Спецификатор минимальной ширины
Представляет собой целое число, задающее минимальный размер форматированной строки. Если переданная строка меньше, то она дополняется символами, указанными в спецификаторе заполнения
Спецификатор точности
Предназначен для указания количества десятичных знаков в представлении чисел с плавающей точкой. При применении этого спецификатора для форматирования строк, он определяет максимальное количество символов, которое нужно взять из переданной строки
спецификатор типа
Этот спецификатор предназначен для указания типа данных, которые переданы в качестве аргумента. Спецификатор может принимать одно из следующих значений:
b – целое число, представляемое в двоичном виде;
с – целое число, представляемое в виде символа с тем же ASCII кодом;
d – целое число, представляемое в десятичном виде;
f – число с плавающей точкой, представляемое в виде десятичной дроби;
o – целое число, представляемое в восьмеричном виде;
s – строка;
x – целое число, представляемое в шестнадцатеричном виде в нижнем регистре;
X – целое число, представляемое в шестнадцатеричном виде в верзнем регистре
Теперь, после разговора о спецификаторах типа, выведем с помощью функции printf() строку в формате даты dd/mm/yyyy. Следующий код выводит в результате строку "02/03/2003":
<?
$day = 2;
$month = 3;
$year = 2003;
printf("%02d/%02d/%04d", $day, $month, $year);
?>
Результат:
02/03/2003 |
В этом примере, месяц и день мы форматируем как двузначные числа, а год – как четырехзначное. При этом мы указываем, что целые числа дополняются до минимальной длины нулями слева: %04d
Первый символ – спецификатор заполнения и он равен нулю. Так как дополнение дописывается к началу числа, спецификатор выравнивания отсутствует. Спецификатор минимальной ширины равен двум. Спецификатор точности также отсутствует, так как мы форматируем целое число. Спецификатор типа представлен символом d, так как мы форматируем число как десятичное целое.
Приведем еще один пример.
<?
$value = 19;
printf("%.3f", $value);
?>
Этот скрипт выводит число 19 в виде 19.000
Еще одна форматная функция