- •Иркутский государственный университет путей сообщения кафедра “информатика” программирование на языке php
- •Иркутск
- •Содержание
- •Внедрение php-сценария в html-документ
- •Алфавит языка
- •Служебные слова
- •Типы данных
- •Комментарии
- •Переменные
- •Математические функции
- •Математические константы
- •Выражения
- •Операторы присваивания
- •Проверка существования переменной
- •Isset(переменная);
- •Is_string(переменная);
- •Мои поздравления!
- •Платежная ведомость
- •Отладочная печать
- •Var_dump(переменная);
- •Форматирование чисел
- •Number_format(переменная, точность, разделитель1, разделитель2);
- •Массивы
- •Создание массивов
- •Многомерные массивы
- •Операции над массивами Перемещение по массиву
- •Копирование массивов
- •Сортировка массивов
- •Запись значений элементов массива в переменные из списка
- •Преобразование массива в текстовую строку
- •Преобразование текстовой строки в массив
- •Функции для работы с массивами
- •Глобальные предопределенные массивы
- •Работа с формой Работу выполнил студент группы ис-09 Пупкин Василий
- •Дата и время
- •Mktime(час, мин, сек, месяц, день, год);
- •1972450760 Секунд 547902.98888889 часов 22829.291203704 дней 62.546003297818 лет
- •Date(формат, число);
- •Strtotime(дата_время, число);
- •Функции
- •Рекурсия
- •Функция dumper()
- •Функции для работы со строками
- •Регулярные выражения
- •Автономные функции
- •Текстовые файлы
- •Включение файлов
- •Получение информации о файле
- •Блокировка файлов
- •Бинарные файлы
- •Алгоритм и его свойства
- •Схемы алгоритмов
- •Пример записи алгоритма:
- •Базовые структуры
- •Цепочка
- •Ветвления
- •Альтернатива
- •Действие альтернативы:
- •If (условие)
- •Вариант 2 – с использованием операции конъюнкции
- •Часто встречающиеся ошибки программирования:
- •Переключатель
- •Часто встречающиеся ошибки программирования:
- •Бесконечные циклы
- •Циклы с предусловием
- •Программа:
- •Часто встречающиеся ошибки программирования:
- •Циклы с постусловием
- •Программа:
- •Циклы с параметром
- •Действия цикла:
Бинарные файлы
Бинарные файлы представляют собой последовательность символов длиной один байт, нумерация которых начинается снуля. В конце файла стоит метка EOF – End Of File.
Объявляется бинарный файл так же, как и текстовый:
($fp = fopen(“D:/User/my_file.dat”, “wb”)) //открыт для записи
or die(“Невозможно открыть файл”);
где $f–дескрипторфайла,
wb– режим открытия бинарного файла – для записи.
Таким образом, расширение имени бинарного файла - .dat,в режиме его открытия используется букваb (binary):
rb– чтение,
wb– запись,
ab – добавление в конец файла,
r+b- чтение с обновлением(rb + wb),
w+b- запись с обновлением,
a+b- добавление с обновлением.
Внимание!В бинарных файлах отсутствует понятиестроки(ESC-последовательность/nне интерпретируется). Запись и чтение из них осуществляетсяпобайтно(посимвольно):
($fp = fopen("C:/User/my_bin_file.dat", "wb")) //открыт для записи
or die("Невозможно открыть файл");
$str="abcdefghijklmnopqrstu";
fwrite($fp, $str);
$str="0123456789";
fwrite($fp, $str);
$str="абвгдежзиклмн";
fwrite($fp, $str);
fclose($fp); // закрытие файла
Структура созданного файла:
abcdefghijklmnopqrstu0123456789абвгдежзиклмн
Бинарный файл читается или посимвольно fgetc(), или поблочно fgets(), fread(), или целиком file_get_contents():
посимвольноечтение из файла:
($fp = fopen(“D:/User/my_bin_file.dat”, “rb”)) //открыт для чтения
or die(“Невозможно открыть файл”);
while (!feof($fp))
{
$chr=fgetc($fp); //посимвольное чтение из файла
echo $chr;
}
echo “<BR>”;
fclose($fp); // закрытие файла
поблочноечтение из файла:
($fp = fopen(“D:/User/my_bin_file.dat”, “rb”)) //открыт для чтения
or die(“Невозможно открыть файл”);
while (!feof($fp))
{
$str=fread($fp, 8); //чтение блоками по 8 байтов
echo $str;
}
echo “<BR>”;
fclose($fp); // закрытие файла
чтение файла целиком:
$str=file_get_contents(“D:/User/my_bin_file.dat”);
echo $str;
echo “<BR>”;
Во всех трех случаях на экране появится:
abcdefghijklmnopqrstu0123456789абвгдежзиклмн
Над бинарными файлами определены следующие операции:
a) перемещениеуказателя файла в заданную позицию
fseek(дескриптор файла, позиция, параметр)
где позиция- количество байтов (символов), отстоящих от заданного места,параметр - SEEK_SET- начало файла,
- SEEK_CUR- текущая позиция файла,
- SEEK_END- конец файла.
Пример 1: прочитать символ из бинарного файла, отстоящий от начала файла на9байтов:
($fp = fopen(“D:/User/my_bin_file.dat”, “rb”)) //открыт для чтения
or die(“Невозможно открыть файл”);
fseek($fp, 9, SEEK_SET);
$chr=fgetc($fp);
echo $chr;
На экран будет выведено:
j
Пример 2: прочитать символ из бинарного файла, отстоящий от конца файла на6байтов:
($fp = fopen(“D:/User/my_bin_file.dat”, “rb”)) //открыт для чтения
or die(“Невозможно открыть файл”);
fseek($fp, -6, SEEK_END); // отрицательное число!
$chr=fgetc($fp);
echo $chr;
На экран будет выведено:
з
б) определениеномера текущей позиции, занимаемой указателем файла (нумерация позиций начинается снуля)
ftell(дескриптор файла)
Пример: определить номера позиций начального и конечного символов файла:
($fp = fopen("D:/User/my_bin_file.dat", "rb")) //открыт для чтения
or die("Невозможно открыть файл"); // указатель – в начало файла
$n=ftell($fp);
echo “начало = $n”;
echo "<BR>";
fseek($fp, 0, SEEK_END);
$n=ftell($fp);
echo “конец = $n”;
echo "<BR>";
fclose($fp);
На экран будет выведено:
начало = 0
конец = 44
в) усечениефайла до заданного размера (в байтах):
ftruncate(дескриптор файла, новый размер)
При этом файл должен быть открыт в режиме, разрешающем запись:
($fp = fopen("D:/User/my_bin_file.dat", "wb")) //открыт для записи
or die("Невозможно открыть файл");
ftruncate($fp, 10);
fseek($fp, 0, SEEK_SET); // обязательно – в начало файла!
fclose($fp);
$str=file_get_contents(“D:/User/my_bin_file.dat”);
echo $str;
На экран будет выведено:
abcdefghij