Уроки php — урок 2 — работа с файлами: открытие, запись, чтение

Открытие и закрытие файлов

До этого при вводе-выводе данных мы работали со стандартными потоками — клавиатурой и монитором. Теперь рассмотрим, как в языке C реализовано получение данных из файлов и запись их туда. Перед тем как выполнять эти операции, надо открыть файл и получить доступ к нему.

В языке программирования C указатель на файл имеет тип FILE и его объявление выглядит так:

FILE *myfile;

С другой стороны, функция открывает файл по указанному в качестве первого аргумента адресу в режиме чтения («r»), записи («w») или добавления («a») и возвращает в программу указатель на него. Поэтому процесс открытия файла и подключения его к программе выглядит примерно так:

myfile = fopen("hello.txt", "r");

Примечание. В случае использования относительной адресации текущим/рабочим каталогом в момент исполнения программы должен быть тот, относительно которого указанный относительный адрес корректен

Место нахождения самого исполняемого файла не важно

При чтении или записи данных в файл обращение к нему осуществляется посредством файлового указателя (в данном случае, myfile).

Если в силу тех или иных причин (нет файла по указанному адресу, запрещен доступ к нему) функция не может открыть файл, то она возвращает NULL. В реальных программах почти всегда обрабатывают ошибку открытия файла в ветке , мы же далее опустим это.

Объявление функции содержится в заголовочном файле stdio.h, поэтому требуется его подключение. Также в stdio.h объявлен тип-структура FILE.

После того, как работа с файлом закончена, принято его закрывать, чтобы освободить буфер от данных и по другим причинам

Это особенно важно, если после работы с файлом программа продолжает выполняться. Разрыв связи между внешним файлом и указателем на него из программы выполняется с помощью функции

В качестве параметра ей передается указатель на файл:

fclose(myfile);

В программе может быть открыт не один файл. В таком случае каждый файл должен быть связан со своим файловым указателем. Однако если программа сначала работает с одним файлом, потом закрывает его, то указатель можно использовать для открытия второго файла.

Выбор за вами

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

Если вы обрабатываете большие объемы данных, вероятно,окажется более полезной и эффективной, чем, скажем, использованиев сочетании с последующими командамии. Если же вы просто отображаете текст большого объема с незначительными изменениями, напротив, использование функций,, или, возможно, будет более целесообразным. Это решение, вероятно, будет верным при использовании PHP для кэширования или даже создания временного прокси сервера.

PHP предоставляет множество инструментов для работы с файлами. Познакомьтесь ближе с каждым из них и узнайте, какие средства оптимально подходят для проекта, над которым вы работаете. Вам предлагается широкий выбор программных средств, используйте их наиболее эффективно и получайте удовольствие, обрабатывая ваши файлы средствами PHP.

Post Views:
580

Как можно программно узнать имя класса, представителем которого является объект?

  • $(get_class->объект);
  • (Правильный ответ) get_class(объект);
  • class(объект);

Имеется следующая форма:

<form action=task3.php>Запись номер 1 <input type=checkbox name=id[] value=10> <br>Запись номер 2 <input type=checkbox name=id[] value=20> <br>Запись номер 3 <input type=checkbox name=id[] value=30> <br><input type=submit value=»»Отправить»»></form>

Изменить значения переданных элементов, увеличив их в 10 раз. Использовать функцию array_walk(). Вывести значения элементов до и после применения array_walk

  • (Правильный ответ)
    <?print_r($_GET);array_walk($_GET,»»test»»);function test(&$val,$key){foreach ($val as $k=> $v)$val = $v*10;}print_r($_GET);?>
  • <?print_r($_GET);array_walk($_GET,»»test»»);function test(&$val,$key){$val = $val*10;}print_r($_GET)?>
  • <?print_r($_POST);array_walk($_POST,»»test»»);function test(&$val,$key){foreach ($val as $k=> $v)$val = $v*10;}print_r($_POST);?>

Excel-таблицы

include_once ‘PhpOffice/PhpExcel/IOFactory.php’

function scGetExcelFile($xls){

$objPHPExcel = PHPExcel_IOFactory::load($xls)

$objPHPExcel->setActiveSheetIndex(0)

//этот массив содержит массивы строк

$aSheet = $objPHPExcel->getActiveSheet()

$array = array()

//обработка

foreach($aSheet->getRowIterator() as $row){

$cellIterator = $row->getCellIterator()

foreach($cellIterator as $cell){

array_push($item, iconv(«utf-8», «cp1251», $cell->getCalculatedValue()))

array_push($array, $item)

Чтение и обработка Excel-файлов значительно сложнее обработки документов Word. Лучший вариант, если необходимо реализовать серьезный проект для чтения и обработки прикладной информации, — сначала освоить библиотеку PHPWord. Это даст хороший опыт и быстрое вхождение в специфику вопроса.

Открытие файла

Т.к. PHP написан на языке C (читается как «Си»), в нём как и в Си, работа с файлами разделена на 3 этапа:

  1. Открытие файла
  2. Чтение/Запись
  3. Закрытие файла

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

Для открытия файла в PHP используется функция fopen(), общий вид функции:

Функция принимает 2 базовых параметра это

  • $filename — имя файла (путь к файлу)
  • $mode — режим чтения файла

В зависимости от режима открытия файла вы можете выполнять те или иные операции над файлом, ниже приведена таблица с описанием режимов чтения:

Режим Чтение Запись Файловый указатель Очистка файла Создать, если файла нет Ошибка, если файл есть
r Да Нет В начале Нет Нет Нет
r+ Да Да В начале Нет Нет Нет
w Нет Да В начале Да Да Нет
w+ Да Да В начале Да Да Нет
a Нет Да В конце Нет Да Нет
a+ Да Да В конце Нет Да Нет
x Нет Да В начале Нет Да Да
x+ Да Да В начале Нет Да Да
c Нет Да В начале Нет Да Нет
c+ Да Да В начале Нет Да Нет
  • b — файл открывается в режиме бинарного чтения/записи
  • t — файл открывается в режиме трансляции символа перевода строки (символы \n для UNIX или \r\n для Windows) и файл воспринимается как текстовый

Рассмотрим пару примеров:

fopen — Открывает файл или URL | Руководство по PHP

‘r’

Открывает файл только для чтения; помещает указатель
в начало файла.

‘r+’

Открывает файл для чтения и записи; помещает указатель
в начало файла.

‘w’

Открывает файл только для записи; помещает указатель
в начало файла и обрезает файл до нулевой длины.
Если файл не существует — пробует его создать.

‘w+’

Открывает файл для чтения и записи; помещает указатель
в начало файла и обрезает файл до нулевой длины.
Если файл не существует — пытается его создать.

‘a’

Открывает файл только для записи; помещает указатель в конец
файла. Если файл не существует — пытается его создать.

‘a+’

Открывает файл для чтения и записи; помещает указатель в конец
файла. Если файл не существует — пытается его создать.

‘x’

Создаёт и открывает только для записи; помещает указатель в
начало файла. Если файл уже существует, вызов
fopen() закончится неудачей, вернёт и
выдаст ошибку уровня .
Если файл не существует, попытается его создать. Это эквивалентно
указанию флагов O_EXCL|O_CREAT для внутреннего
системного вызова open(2).

‘x+’

Создаёт и открывает для чтения и записи; иначе имеет то же поведение что и‘x’.

‘c’

Открывает файл только для записи. Если файл не существует, то он создается.
Если же файл существует, то он не обрезается (в отличии от
‘w’), и вызов к этой функции не вызывает ошибку (также как
и в случае с ‘x’). Указатель на файл будет установлен
на начало файла. Это может быть полезно при желании заблокировать
файл (смотри flock()) перед изменением, так как использование
‘w’ может обрезать файл еще до того как была получена блокировка
(если вы желаете обрезать файл, можно использовать функцию
ftruncate() после запроса на блокировку).

Открытие файла

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

Синтаксис:

file object = open(<file-name>, <access-mode>, <buffering>)       

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

Режим доступа Описание
1 r Он открывает файл в режиме только для чтения. Указатель файла существует в начале. Файл по умолчанию открывается в этом режиме, если не передан режим доступа.
2 rb Открывает файл в двоичном формате только для чтения. Указатель файла существует в начале файла.
3 г + Открывает для чтения и записи. Указатель файла также существует в начале.
4 rb + в двоичном формате. Указатель файла присутствует в начале файла.
5 w Только для записи. Он перезаписывает файл, если он существовал ранее, или создает новый, если файл с таким именем не существует. Указатель имеется в начале файла.
6 wb Открывает файл для записи только в двоичном формате. Перезаписывает файл, если он существует ранее, или создает новый, если файл не существует. Указатель файла существует в начале файла.
7 w + Для записи и чтения обоих. Он отличается от r + в том смысле, что он перезаписывает предыдущий файл, если он существует, тогда как r + не перезаписывает ранее записанный файл. Он создает новый файл, если файл не существует. Указатель файла существует в начале файла.
8 wb + Он открывает файл для записи и чтения в двоичном формате. Указатель файла существует в начале файла.
9 а В режиме добавления. Указатель файла существует в конце ранее записанного файла, если он существует. Он создает новый файл, если не существует файла с таким же именем.
10 ab В режиме добавления в двоичном формате. Указатель существует в конце ранее записанного файла. Он создает новый файл в двоичном формате, если не существует файла с таким же именем.
11 а + Он открывает файл для добавления и чтения. Указатель файла остается в конце файла, если файл существует. Он создает новый файл, если не существует файла с таким же именем.
12 ab + Открывает файл для добавления и чтения в двоичном формате. Указатель файла остается в конце файла.

Давайте посмотрим на простой пример, чтобы открыть файл с именем «file.txt»(хранящийся в том же каталоге) в режиме чтения и распечатать его содержимое на консоли.

Пример:

#opens the file file.txt in read mode  
fileptr = open("file.txt","r")  
  
if fileptr:  
    print("file is opened successfully")  

Выход:

<class '_io.TextIOWrapper'>
 file is opened successfully

В приведенном выше коде мы передали filename в качестве первого аргумента и открыли файл в режиме чтения, поскольку мы упомянули r в качестве второго аргумента. Fileptr содержит объект файла, и если файл открывается успешно, он выполнит оператор печати.

Сохранение результатов

Полученная и обновленная информация записывается в файл функцией fputs() построчно или функцией file_put_contents() целиком.

$fName = $_SERVER . «/tmp/scData.php»

$fvs = fopen($fName, «a»)

flock($fvs, LOCK_EX)

$cLine = «1 line». chr(10)

fputs($fvs, $cLine)

$cLine = «2 line» . chr(10)

fputs($fvs, $cLine)

flock($fvs, LOCK_UN)

В построчном варианте записи, можно манипулировать данными в ходе процесса записи, во втором случае записываемая строка или массив помещается в файл целиком.

$file = » scData.php «

$cContents = file_get_contents($file)

// добавление записи

$cContents .= «новая запись\n»

// запись файла обратно

file_put_contents($file, $cContents)

Чтение и запись файлов PHP выполняется просто и естественно

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

Они автоматически выставляются на хостинге, но в некоторых случаях их требуется расширить.

В некоторых случаях желательно проверить результаты, выполнив тестовое чтение. Запись файлов PHP требует это на этапе разработки, но в некоторых случаях в интересах безопасности или надежности сайта проверка записи данных имеет существенное значение.

Характерная черта PHP, MySQl, JavaScript, а особенно браузеров: тихо пускать на самотек некоторые ошибки. «Не распозналось, не сделалось …» — не слишком хорошая практика переднего края информационных технологий, но это учит разработчиков не ошибаться и писать чистый, качественный код, что тоже неплохо.

Рекурсия

Рекурсия — это один из часто используемых приёмов в функциональном программировании. При императивном подходе, для прокрутки по массивам мы можем воспользоваться циклами for или foreach, записывая текущее значение во временную переменную. Из-за принципа “неизменности”, данный подход неприемлем для функционального программирования.

Предположим, что мы хотим получить сумму элементов массива (забудьте о array_sum()). При функциональном подходе, решение данной задачи будет выглядеть так:

<?php
function sum($array) {
    if (empty($array))
        return 0;
    else
        return $array + sum(array_slice($array, 1));
}

$total = sum(array(1, 2, 3)); // 6

Если массив пустой, то сумма элементов будет равна 0. В случае если в массиве больше элементов, мы применяем рекурсию.

Чтение из файла

Функцию fread()
можно использовать для получения определённого количества
данных из файла.

fread (файл, длина)

Параметры:

файл
— дескриптор файла

длина
— размер данных в байтах

Если конец файла будет достигнут раньше, чем функция прочитает указанный размер данных, то она вернёт строку
меньшего размера. Данную функцию удобно применять для чтения бинарных файлов.

При указании длины строки и при перемещении указателя нужно учитывать, что русские буквы имеют размер не
один байт, а больше. в теме «Работа со
строками». Также не забудте, что в начале файла в кодировке UTF-8 есть несколько байт. В кодировке
UTF-8 без BOM эти байты отсутствуют.

Прочитаем перыве 10 байт из файла myfile.txt. Откроем его в режиме «r+». Указатель будет находится
в начале.

<?php header(«Content-type: text/html; charset=utf-8»);
$file = fopen(«myfile.txt», «r+»);
$take = fread($file, 10);
echo $take;

Если в файле присутствуют русские буквы, то последняя буква может отображаться неправильно. Это происходит
потому, что символ имеет размер больше одного байта и одна часть прочитана, а вторая нет.

Функция fgets()
возвращает одну строку, начиная от указателя до конца
строки.

fgets (файл, длина)

Параметры:

файл
— дескриптор файла

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

Если длина не указана, то в старых версиях PHP максимальная длина возвращаемой строки была ограничена. В
более новых версиях этого ограничения нет.

Запуск функции в цикле позволяет произвести чтение файла построчно.

Прочитаем одну строку строку из файла myfile.txt. Так как указатель уже перемещён, то будет прочитана
не вся строка, а от указателя.

$take = fgets($file);
echo «».$take;

Функция fgetss()
также возвращает одну строку, но удаляет из неё HTML теги.
Если в коде присутствует PHP скрипт, то он тоже будет удалён.

fgetss (файл, длина, нужные тэги)

Параметры:

файл
— дескриптор файла

длина
— размер строки в байтах. Необязательный параметр.

нужные теги
— позволяет указать тэги, которые не будут удалены.

Существует функция fgetc()
, которая возвращает один символ из файла.

Функция file()
читает весь файл и помещает данные в массив. Каждая строка
помещается в элемент массива. Для работы этой функции не требуется открывать файл. Расположение указателя
не учитывается.

file (путь к файлу, флаги, контекст)

Параметры:

путь к файлу
— абсолютный или относительный путь к файлу

флаги
— флаги, определяющие работу функции. Необязательный параметр.

контекст
— позволяет указать ресурс контекста

Можно указать такие флаги:

FILE_USE_INCLUDE_PATH — позволяет искать файл в папках include path.

FILE_IGNORE_NEW_LINES — удаляет символ конца строки. Если этот флаг не установлен, то в каждой строке будет
символ конца строки.

FILE_SKIP_EMPTY_LINES — не добавляет в массив пустые строки.

Если указывается несколько флагов, то они разделяются оператором «|».

Выведем файл myfile.txt на страницу.

$ar = file(«myfile.txt», FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
echo «»;
print_r($ar);

Как создать файл и записать в него данные в PHP

Чтобы начать работать с файлом, операционной системе надо выделить дескриптор (описатель). Также надо указать что вы собираетесь делать с файлом, т.е. выбрать режим работы.

<?php
//создали/очистили файл и открыли его для записи
$handler = fopen($filename, «w»);
?>

1
2
3
4

<?php
//создали/очистили файл и открыли его для записи

$handler=fopen($filename,»w»);

?>

Режим «w» — (writting), позволит только записывать в файл. Если файл не существует, то он будет создан, если он уже есть — то он будет обнулен.

Если вам не нужно очищать содержимое файла, то используйте режим «w+», который будет аналогичен использованию флага FILE_APPEND. При этом дескриптор позволит как запись так и чтение данных из файла.

<?php
//открыли файл для записи данных в конец файла
$handler = fopen($filename, «w+»);
?>

1
2
3
4

<?php
//открыли файл для записи данных в конец файла

$handler=fopen($filename,»w+»);

?>

Итак, дескриптор файла создан. Теперь запишем данные.

<?php
fwrite($handler, $text);
?>

1
2
3

<?php

fwrite($handler,$text);

?>

Мы можем продолжить использовать открытый дескриптор и далее, дописывая данные. При окончании работы скрипта — он автоматически будет освобожден. Можно освободить его и раньше.

<?php
//закрыли файл
fclose($handler);
?>

1
2
3
4

<?php
//закрыли файл

fclose($handler);

?>

Что насчет монопольного доступа к файлу? Аналогично действию флага LOCK_EX мы можем выполнить блокировку следующим образом:

//включаем блокировку
if (flock($handler, LOCK_EX)) {
    fwrite($handler, $text);
//сняли блокировку
    flock($handler, LOCK_UN);
} else {
//блокировку выполнить не удалось
    echo «Не могу выполнить блокировку!»;
}

1
2
3
4
5
6
7
8
9

//включаем блокировку

if(flock($handler,LOCK_EX)){

   fwrite($handler,$text);

//сняли блокировку

   flock($handler,LOCK_UN);

}else{

//блокировку выполнить не удалось

   echo»Не могу выполнить блокировку!»;

}

Чтение данных из файла выполняет функция fread();

<?php
//открыли файл
$handler = fopen($filename, «w+»);
//записали данные
fwrite($handler, $text);

//чтобы записать данные реально на диск, нужно либо
//закрыть файл или выполнить ф-цию fflush()
fflush($handler);
//переместили указатель файла в самое начало
fseek($handler, 0);
//читаем все данные из файла
$text = fread($handler, filesize($filename));
//завершили работу с файлом
fclose($handler);
?>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

<?php
//открыли файл

$handler=fopen($filename,»w+»);

//записали данные

fwrite($handler,$text);

//чтобы записать данные реально на диск, нужно либо
//закрыть файл или выполнить ф-цию fflush()

fflush($handler);

//переместили указатель файла в самое начало

fseek($handler,);

//читаем все данные из файла

$text=fread($handler, filesize($filename));

//завершили работу с файлом

fclose($handler);

?>

Открытие и закрытие файлов в PHP

Чтобы открыть файл в PHP, используют функцию fopen(). Она определяется следующим образом:

resource fopen(string $filename, string $mode)

Первый атрибут $filename служит для предоставления пути к файлу, а второй параметр обеспечивает его открытие. В зависимости от того, каковы цели открытия и какой тип файла, параметр может принимать несколько значений:
– ‘r’: файл открывается лишь для чтения. Если файл отсутствует, возвращается false;
— ‘r+’: файл открывается лишь для чтения, но есть возможность записи. Если файла нет, возвращается false;
— ‘w’: файл открывается для записи. Когда такой файл уже есть, он перезаписывается, когда нет — создаётся;
— ‘w+’: файл открывается для записи, но есть возможность чтения. Если файл существует, происходит перезапись, если нет — создание;
— ‘a’: файл открывается для записи. При его существовании информация записывается в конец файла, при этом старые данные сохраняются. Если файла нет, происходит его создание;
— ‘a+’: файл открывается и для чтения, и для записи. Когда файл существует, данные дописываются в конец файла. Если файл отсутствует, он создаётся.

Результат функции fopen — дескриптор файла. Этот дескриптор применяется для выполнения операций с файлом, а также для его закрытия.

После окончания работы файл закрываем функцией fclose(), принимающей в качестве параметра дескриптор файла. К примеру, следующий PHP-код откроет и закроет файл:

    $fd = fopen("form.php", 'r') or die("файл открыть не удалось");
fclose($fd);

Если fopen не сможет открыть наш файл, конструкция or die позволит прекратить работу скрипта и вывести сообщение об ошибке.

3.2 Регистрация пользователя

Для регистрации нового пользователя необходимо не просто подключиться к
существующей базе данных, но и написать запрос, который добавит пользователя в
нашу базу данных.

Для регистрации пользователя создадим файл write.php ,
который будет содержать следующий код:

<?php(isset($_POST) and isset($_POST) and

isset($_POST) and isset($_POST)) // проверяем заполнены ли

поля

{‘config.php’;

$dcnx=mysql_connect(«$HOST», «$USER»,
«$PASS»); // подключаемся к

базе данных(!$dcnx)
exit(mysql_error());(!mysql_select_db($DB,$dcnx)) exit(mysql_error());

$query = mysql_query(«INSERT INTO Zakazchiki
(id_zak,familia,

name_zak, city, tel)

VALUES(‘».$_POST.»‘,'».$_POST.»‘,'».$_POST.»‘,

‘».$_POST.»‘,'».$_POST.»‘);»); // пишем запрос на

добавление пользователя в существующую базу данных

if(!$query)

{«<p>Ошибка
в запросе</p>»;

exit();

}echo «Пользователь «.$_POST.» был успешно создан»;

}

<form method=post align=center
action=write.php>:<br> <input type=text name=id><br>

//Создание полей регистрационной формы

Фамилия:<br> <input type=text name=sname><br>

Имя:
<br> <input type=text name=name><br>

Город:
<br><input type=text name=city><br>

Телефон:<br>
<input type=text name=tel><br>

<input type=submit value=’Зарегистрироваться’>

</form>

«;»»;

}

?>

В файле config.php содержится следующая информация:

<?php

$HOST = «localhost»; // имя сервера

$USER = «root»; // пользователь базы данных MySQL

$PASS = «»; // пароль для доступа к серверу MySQL

$DB = «KingAuto»; // название создаваемой базы данных

?>

Результат запроса приведен на рисунках 3.1. и 3.2.

Рис. 3.1 Регистрация пользователя

Рис. 3.2 Регистрация пользователя

5 последних уроков рубрики «PHP»

Фильтрация данных с помощью zend-filter

Когда речь идёт о безопасности веб-сайта, то фраза «фильтруйте всё, экранируйте всё» всегда будет актуальна. Сегодня поговорим о фильтрации данных.

Контекстное экранирование с помощью zend-escaper

Обеспечение безопасности веб-сайта — это не только защита от SQL инъекций, но и протекция от межсайтового скриптинга (XSS), межсайтовой подделки запросов (CSRF) и от других видов атак

В частности, вам нужно очень осторожно подходить к формированию HTML, CSS и JavaScript кода

Подключение Zend модулей к Expressive

Expressive 2 поддерживает возможность подключения других ZF компонент по специальной схеме. Не всем нравится данное решение. В этой статье мы расскажем как улучшили процесс подключение нескольких модулей.

Совет: отправка информации в Google Analytics через API

Предположим, что вам необходимо отправить какую-то информацию в Google Analytics из серверного скрипта. Как это сделать. Ответ в этой заметке.

Подборка PHP песочниц

Подборка из нескольких видов PHP песочниц. На некоторых вы в режиме online сможете потестить свой код, но есть так же решения, которые можно внедрить на свой сайт.

Экспоненты и логарифмы

Язык PHP включает стандартные экспоненциальные и логарифмические функции двух разноввдностей — для работы по основанию 10 и основанию е (которые приведены в таблице).

Экспоненциальные функции
Функция Описание
pow() Принимает два числовых параметра и возвращает первый параметр, возведенный в степень, равную второму параметру. Значение выражения pow($х, $у) равно xy
exp() Принимает единственный параметр и возводит число e в степень, равную этому показателю степени. Значение выражения exp($х) равно ex
log() Функция натурального логарифма (ln). Принимает единственный параметр и возвращает его логарифм по основанию e
log10() Принимает единственный параметр и возвращает его десятичный логарифм (lg)

В языке PHP предусмотрена функция exp() для возведения числа e в указанную степень, но отсутствует функция с одним параметром, с помощью которой можно было бы возвести в указанную степень число 10. Однако вместо этой функции можно использовать функцию pow() с двумя параметрами, задавая 10 в качестве первого параметра.

Можно убедиться в том, что экспоненциальные и логарифмические функции с одним и тем же основанием являются обратными по отношению друг к другу, проведя проверку идентичности полученных результатов таким образом:

Код PHP

Управление файлами

PHP содержит множество функций управления файлами.
Наиболее употребимыми являются:

  • touch() — создает пустой файл с заданным именем. Если такой
    файл уже существует, то функция изменит дату модификации. Например:
    touch( "ex1.txt" );
    
  • copy() — копирует файл.
    Для копирования файлов в php применяется функция copy ($source, $result). Ей нужно передать лишь два
    параметра
    — источник $source и имя файла-копии — $result. Стоит отметить, что следует указывать полные адреса к
    файлам.
    Пример применения функции copy:
  • unlink() — удаляет заданный файл. Например:

  • fopen( ) — открывает локальный или удаленный файл и возвращает
    указатель на него. Указатель используется во всех операциях с содержимым файла.
    Аргументы: имя файла и режим открытия.
    r чтение. Указатель файла устанавливается на его начало
    r+ чтение и запись. Указатель файла устанавливается на его начало
    w запись. Указатель файла устанавливается на его начало.
    Все старое содержимое файла теряется. Если файл с указанным именем не
    существует, функция пытается его создать
    w+ чтение и запись. Указатель файла устанавливается на его начало.
    Все старое содержимое файла теряется. Если файл с указанным именем не
    существует, функция пытается его создать
    a запись. Указатель файла устанавливается на его конец.
    Если файл с указанным именем не существует, функция пытается его создать
    a+ чтение и запись. Указатель файла устанавливается на его конец.
    Если файл с указанным именем не существует, функция пытается его создать

    Например:

    Если открыть файл не удалось, то можно прервать выполнение программы. Например:

    $fp = fopen( "ex1.txt", "w" ) or die ( "Не удалось открыть файл" );
    
  • fclose() — закрывает файл. Аргумент: указатель файла,
    полученный ранее от функции fopen(). Например:
    fclose( $fp );
    
  • feof() — проверка конца файла. Аргумент: указатель файла.
  • fgetc() — чтение очередного символа из файла. Аргумент:
    указатель файла.
  • fgets() — чтение очередной строки файла. Аргументы: указатель файла
    и длина считываемой строки. Операция прекращается либо после считывания
    указанного количества символов, либо после обнаружения конца строки или файла.
  • fread() — общая функция чтения из файла. Аргументы: указатель файла
    и количество считываемых символов.
  • fseek() — отступ от начала файла. Аргументы: указатель файла
    и смещение.
  • fputs() — запись строки в файл. Аргументы: указатель файла
    и строка.
  • fwrite() — полный аналог функции fputs( ).
  • flock() — блокирует файл, т.е. не позволяет другим пользователям
    читать этот файл или писать в него, пока тот, кто наложил блокировку не
    закончит работу с данным файлом.
    Аргументы: указатель файла и номер режима блокировки.
    1 Можно читать, нельзя писать
    2 Нельзя ни читать, ни писать
    3 Снятие блокировки

    Пример 7

    Блокировка с помощью flock() не является абсолютной. С ней
    будут считаться только те программы, которые тоже используют эту функцию.

В PHP версии 4.3.0 появились новые удобные функции работы с файлами:

  • file_get_contents() — прочитать весь файл или URL
  • file_put_contents() — записать файл

Общие замечания

Основная работа с файлами, какие бы они ни были, состоит в открытии, чтении/записи и закрытии. Можно использовать функции блокировки/разблокировки доступа к файлу на время его обработки, можно устанавливать позицию чтения/записи в файле — все, как и ранее, в далеком прошлом.

Важным моментом в PHP является избыток функций работы с файлами и вариантов их использования. На практике достаточно применять простые, но работающие варианты. Файл — это, прежде всего, память программы. В нем можно хранить информацию. Цель любой программы, назначение любого сайта — представлять, обрабатывать и обеспечивать сохранность информации.

Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
Люкс-хост
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: