Работа с файлами на php: открытие, запись, чтение. Работа с файлами в PHP. Чтение файла, запись в файл. PHP учебник. Удаление файлов, изменение chmod, работа с каталогами. C
Под работой с файлами в PHP подразумевается чтение из файла и запись в файл различной информации. Совершенно очевидно, что работать с файлами приходится много, поэтому любой PHP-программист обязан уметь считывать из файла и записывать в файл .
Последовательность работы с файлами в PHP такая:
- Открыть файл.
- Выполнить необходимые действия.
- Закрыть файл.
Как видите, последовательность работы с файлами напоминает работу с файлами через обычный проводник. Только здесь вся работа выполняется автоматически самим PHP-скриптом .
Начнём с первого пункта - открытие файла. Файл открывается с помощью функции fopen() . Первый параметр - это путь к файлу, а второй параметр - модификатор . Давайте сразу разберём возможные модификаторы:
- a - открывает файл только для записи, причём указатель помещается в конец файла.
- a+ a , но также файл открывается ещё и для чтения.
- r - открывает файл только для чтения, а указатель устанавливается в начало файла.
- r+ - то же самое, что и модификатор r , но также файл открывается ещё и для записи.
- w - открывает файл только для записи, указатель устанавливает в начало файла и стирает всё содержимое файла.
- w+ - то же самое, что и модификатор w , только файл открывается также и для чтения.
Также различают два режима работы с файлами: бинарный (обозначается b ) и текстовый (обозначается t ). Если Вы работаете с обычным текстовым файлом, то выбирайте текстовый режим, а если, например, с изображением, то бинарный.
Это все основные модификаторы, которых Вам вполне хватит. Теперь давайте узнаем, как закрыть файл. Закрывается файл с помощью функции fclose() .
Теперь перейдём к чтению файла с помощью функции fread() . И давайте, наконец-то, приведу пример:
$contents = "";
while (!feof($handle))
$contents .= fread($handle, 4096);
fclose($handle);
?>
В данном примере мы сначала открываем файл для чтения в текстовом режиме (модификатор rt ). Функция fopen() возвращает так называемый дескриптор , с помощью которого можно общаться с файлом, и записываем его в переменную handle . Затем мы в цикле while() до тех пор, пока не достигнут конец файл, считываем содержимое каждый раз по 4096 символов, которые записываем в переменную contents . После завершения процесса считывания - закрываем файл, вновь с помощью дескриптора файла.
Теперь перейдём к записи с помощью функции fwrite() :
$handle = fopen("files/a.txt", "at");
$string = "This is text";
fwrite($handle, $string);
fclose($handle);
?>
После запуска этого скрипта, в файле a.txt добавится строка "This is text ".
Особо внимательные читатели обратили внимание на указатели, о которых я писал чуть выше. Указатель - это текущая позиция воображаемого "курсора" в файле. Именно с него и начинается работа с файлом. Изменить положение указателя можно с помощью функции fseek() :
$handle = fopen("files/a.txt", "rt");
echo $contents."
";
fseek($handle, 0, SEEK_SET);
$contents = fread($handle, 3);
echo $contents."
";
?>
Таким образом, мы сначала считываем 3 символа (в результате, текущее положение указателя сдвигается на 3 позиции). Затем мы устанавливаем указатель на начало файла. И вновь считываем 3 символа. Как Вы и догадались, мы два раза считали одно и тоже. То есть первый раз 3 символа, потом вернулись назад, и вновь считали 3 символа. Также если у функции fseek() заменить SEEK_SET на SEEK_CUR , то тогда второй параметр будет не устанавливать позицию указателя, а сдвигать относительно текущего местоположения. Советую даже попрактиковаться с указателями, потому что для понимания это не так просто. Также рекомендую попытаться записать что-нибудь в файл при позиции указателя, например, в самом начале файла. И обязательно объясните полученный результат.
И, напоследок, хочется привести ещё пару функций, которые позволяют работать с файлами на самом простом уровне: file_put_contens() и file_get_contents() . Функция file_put_contents() записывает в файл, а функция file_get_contents() считывает содержимое из файла. Эти функции очень просты в применении, но возможностей там уже меньше (хотя, как правило, они и не нужны):
file_put_contents("files/a.txt", "This is text 2");
echo file_get_contents("files/a.txt");
?>
В данном скрипте мы сначала записали строку "This is text 2 " в файл, а потом считываем полученное содержимое и выводим его. Как видите, трудно придумать более простой способ чтения из файла и запись в файл .
Вот и все основные моменты работы с файлами в PHP .
У Вас в браузере заблокирован JavaScript. Разрешите JavaScript для работы сайта!
Работа с файлами
Работа с файлами - важный инструмент PHP.
Включение внешних файлов
В каждый PHP-документ можно включить файл с помощью инструкции include() . Её аргумент: путь к файлу. Этой инструкцией удобно пользоваться при наличии одинаковых кусков кода во многих PHP-программах. Содержимое включаемого файла обрабатывается как простой HTML-текст. Для того, чтобы содержимое этого файла обрабатывалось как PHP-программа, нужно обрамлять его открывающим и закрывающим тегами PHP.
Пример 1
Echo "
...Общее приветствие...
"РЕЗУЛЬТАТ ПРИМЕРА 1:
...Общее приветствие...
...Основная часть...
В данном случае результат будет тем же, если включаемый файл top.php содержит только строку HTML-текста:
...Общее приветствие...
Включаемые файлы могут возвращать значения подобно функциям. Использование оператора return прерывает выполнение этого файла так же, как и функции.
Пример 2
Включаемый файл top.php с PHP-программой:
РЕЗУЛЬТАТ ПРИМЕРА 2:
Включаемый файл вернул 56
Инструкцию include() можно использовать внутри цикла. В цикле include() выполняется при каждой итерации. Это можно использовать для включения нескольких файлов. Например:
For ($i=1; $i<=5; $i++) include("incfile{$i}.htm");
Определение имени включаемого файла и его загрузка производятся повторно при каждом вызове include() . Это означает, что если содержание включаемого файла с момента предыдущего вызова изменилось, то загрузится новое содержание.
Оператор include() также можно включать в тело условного оператора.
Несмотря на сходство по внешнему виду с функцией, include() функцией не является, а представляет собой специальную конструкцию языка.
Для указания что файл нужно подключать только один раз используется оператор include_once()
Анализ файлов
PHP содержит множество функций, дающих информацию о файлах. Наиболее употребимыми являются:
- file_exists() - определяет существование файла. Например: if (!file_exists("aaa.php")) echo "Внимание! Файл aaa.php не найден!";
- is_file() - определяет, является ли исследуемый объект файлом. Например: if (is_file("bbb.txt")) echo "Можете не сомневаться, bbb.txt - это файл";
- is_dir() - определяет, является ли исследуемый объект каталогом. Например: if (is_dir("/tmp")) echo "Действительно, /tmp - это каталог";
- is_readable() - определяет, доступен ли файл для чтения. Например: if (is_readable("db.dbf")) echo "db.dbf можно читать";
- is_writable() - определяет, доступен ли файл для записи. Например: if (is_writable("db.dbf")) echo "В db.dbf писать можно";
- filesize() - определяет размер файла в байтах.
- filemtime() - определяет дату и время последнего изменения файла.
- fileatime() - определяет дату и время последнего обращения к файлу.
Пример 3
"; echo "$f ".(is_readable($f) ? "" : "не ")."доступен для чтения
"; echo "$f ".(is_writable($f) ? "" : "не ")."доступен для записи
"; echo "размер $f в байтах - ".(filesize($f))."
"; echo "последнее изменение $f - ".(date("d M Y H:i", filemtime($f)))."
"; echo "последнее обращение к $f - ".(date("d M Y H:i", fileatime($f)))."
"; } ?>
РЕЗУЛЬТАТ ПРИМЕРА 3:
Top.php - файл top.php - не каталог top.php доступен для чтения top.php доступен для записи размер top.php в байтах - 732 последнее изменение top.php - 04 Oct 2005 20:21 последнее обращение к top.php - 20 Oct 2005 14:01
Внимание! С удаленными файлами эти функции не работают. Их можно применять только к локальной файловой системе.
Управление файлами
PHP содержит множество функций управления файлами. Наиболее употребимыми являются:
- touch() - создает пустой файл с заданным именем. Если такой файл уже существует, то функция изменит дату модификации. Например: touch("ex1.txt");
- copy()
- копирует файл.
Для копирования файлов в php применяется функция copy ($source, $result). Ей нужно передать лишь два параметра
- источник $source и имя файла-копии - $result. Стоит отметить, что следует указывать полные адреса к файлам.
Пример применения функции copy:
- unlink() - удаляет заданный файл. Например:
- fopen()
- открывает локальный или удаленный файл и возвращает
указатель на него. Указатель используется во всех операциях с содержимым файла.
Аргументы: имя файла и режим открытия.
r чтение. Указатель файла устанавливается на его начало r+ чтение и запись. Указатель файла устанавливается на его начало w запись. Указатель файла устанавливается на его начало. Все старое содержимое файла теряется. Если файл с указанным именем не существует, функция пытается его создать w+ чтение и запись. Указатель файла устанавливается на его начало. Все старое содержимое файла теряется. Если файл с указанным именем не существует, функция пытается его создать a запись. Указатель файла устанавливается на его конец. Если файл с указанным именем не существует, функция пытается его создать a+ чтение и запись. Указатель файла устанавливается на его конец. Если файл с указанным именем не существует, функция пытается его создать Например:
$fp = fopen("http://www.php.net/", "r"); // для чтения $fp = fopen("ex1.txt", "w"); // для записи $fp = fopen("ex2.txt", "a"); // для добавления в конец
Если открыть файл не удалось, то можно прервать выполнение программы. Например:
$fp = fopen("ex1.txt", "w") or die ("Не удалось открыть файл");
- fclose() - закрывает файл. Аргумент: указатель файла, полученный ранее от функции fopen() . Например: fclose($fp);
- feof() - проверка конца файла. Аргумент: указатель файла.
- fgetc() - чтение очередного символа из файла. Аргумент: указатель файла.
- fgets()
- чтение очередной строки файла. Аргументы: указатель файла
и длина считываемой строки. Операция прекращается либо после считывания
указанного количества символов, либо после обнаружения конца строки или файла.
Пример 4
Чтение строк из файла "; ?> - fread() - общая функция чтения из файла. Аргументы: указатель файла и количество считываемых символов.
- fseek()
- отступ от начала файла. Аргументы: указатель файла
и смещение.
Пример 5
Вывод на экран второй половины файла - fputs() - запись строки в файл. Аргументы: указатель файла и строка.
- fwrite()
- полный аналог функции fputs()
.
Пример 6
Запись и добавление в файл - flock()
- блокирует файл, т.е. не позволяет другим пользователям
читать этот файл или писать в него, пока тот, кто наложил блокировку не
закончит работу с данным файлом.
Аргументы: указатель файла и номер режима блокировки.
Пример 7
Блокировка файла Блокировка с помощью flock() не является абсолютной. С ней будут считаться только те программы, которые тоже используют эту функцию.
В PHP версии >= 4.3.0 появились новые удобные функции работы с файлами:
- file_get_contents() - прочитать весь файл или URL
- file_put_contents() - записать файл
Работа с каталогами
В PHP есть несколько функций для работы с каталогами:
- mkdir()
- создание каталога. Аргументы: путевое имя каталога и
режим доступа. Режим доступа - восьмеричное число из трех цифр с ведущим нулем.
Первая цифра - право доступа для владельца, вторая - для группы, третья -
для всех остальных. В системе Windows режим доступа игнорируется.
В системе UNIX определены следующие права доступа:
Например, право полного доступа для владельца, чтения и запуска для группы и запуска для всех остальных:
Mkdir("testdir", 0751);
- rmdir() - удаление каталога. Аргумент: путевое имя каталога. Удалить можно лишь пустой каталог при наличии права на это. При успешном выполнении функция возвращает true .
- opendir() - открытие каталога. Аргумент: путевое имя каталога. В случае возникновения ошибки функция возвращает false . Ошибка при открытии может быть вызвана тем, что каталог не существует или программа не имеет права его читать.
- readdir()
- чтение каталога. Аргумент: путевое имя каталога.
Возвращает строку, содержащую имя найденного файла или подкаталога.
По достижении конца каталога функция возвращает false .
Пример 8
Чтение каталога "; ?>Проверочное выражение цикла сработает не так, как хотелось бы, если в каталоге есть файл с именем "0". В таком случае имя "0" будет преобразовано в 0, что вызовет завершение цикла. Избежать подобного можно, если принять дополнительные меры безопасности, изменив проверочное выражение:
Gettype($f = readdir($dh)) != "boolean"
Помимо использования функция fgetc() fgets() fgetss(), Вы можете использовать
$file = file($filename). Она читает $filename в массив($file).Пример:
$file=file($filename); for ($i=0; $i<=count($file); $i++) { echo $file[$i], "
"; }
Передача файла с сервера. Скачать файл. DownLoad.
Ручной Download, или как скриптом открыть пользователю окошко сохранения файла.
Чтобы в браузере открылся диалог "Сохранить файл" с названием файла file.dat, скрипт должен послать такие заголовки:
Header("Content-Disposition: attachment; filename=file.dat"); header("Content-Type: application/x-force-download; name=\"file.dat\"");
Готовый пример отправки файла с диска:
Не мешало бы также ссылаться на скрипт как http://.../download.php?file.dat, иначе браузеры, основанные на Mozilla,
могут попытаться записать файл как file.dat.php. или указать атрибут download:
Скачать
Примечание:
Не используйте заголовок header("Cache-Control: no-cache") в таких скриптах,
большинство версий Internet Explorer не смогут скачать файл.
Следующий пример скрипта демонстрирует как организовать поддержку докачки :
Предполагается, что $cd - путь к файлу, $fn - имя файла Как передать файл на сервер?
Функции для работы с каталогами
- chdir() - Сменить каталог boolean chdir (string str)
- chroot() - Сменить корневой каталог boolean chroot (string str)
- closedir() - Освободить дескриптор каталога void closedir (resourse catalog)
Изменяет текущий каталог PHP на указанный в качестве параметра str. Возвращает TRUE в случае успешного завершения, FALSE в случае возникновения ошибки
Изменяет корневой каталог текущего процесса на переданный в качестве параметра str. Возвращает TRUE в случае успешного завершения, FALSE в случае возникновения ошибки..
Замечание: Для Windows-платформ эта функция не реализована.
Закрывает поток, связанный с каталогом и переданный в качестве параметра catalog. Перед использованием данной функции, поток должен быть открыт с помощью функции opendir().
dir - Класс directory
Псевдо-объектно-ориентированный механизм для чтения каталога, переданного в параметре каталог. С момента открытия каталога становятся доступными два свойства класса. Свойство "handle" может быть использовано с другими функциями для работы с каталогами, например, с функциями readdir() , rewinddir() и closedir() . Свойство "path" содержит путь к открытому каталогу. Доступны три метода: read, rewind and close.
Пожалуйста, обратите внимание на способ, которым осуществляется проверка значения, возвращаемого методами класса dir() в примере, приведенном ниже. В этом примере проводится проверка значения на идентичность (выражения идентичны, когда они равны и являются одного типа - за более подробной информацией обратитесь к главе Операторы сравнения) значению FALSE, поскольку в ином случае, любой элемент каталога, чье имя может быть выражено как FALSE, остановит цикл.
Пример кода:
handle."
\n";
echo "Путь: ".$d->path."
\n";
while (false !== ($entry = $d->read())) {
echo $entry."
\n";
}
$d->close();
?>
Замечание: Порядок, в котором метод "read" возвращает элементы каталога, зависит от операционной системы.
Замечание: Также, PHP автоматически определяет внутренний класс Directory, что означает, что вы не сможете определять собственные классы с таким же именем.
Возвращает имя текущего рабочего каталога.
Возвращает дескриптор каталога для последующего использования с функциями closedir(), readdir() и rewinddir().
Если путь не существует или каталог, расположенный по указанному пути, не может быть открыт вследствие правовых ограничений или ошибок файловой системы, функция opendir() возвращает значение FALSE и генерирует сообщение PHP об ошибке уровня E_WARNING. Вы можете запретить вывод сообщения об ошибке, предварив имя функции opendir() символом "@".
Пример кода
Начиная с версии PHP 4.3.0, параметр путь может также являться любым URL"ом, обращение к которому приводит к получению списка его файлов и каталогов. Однако, данный способ работает только при использовании url-упаковщика file://. В версии PHP 5.0.0 была добавлена поддержка url-упаковщика ftp://.
Возвращает имя следующего по порядку элемента каталога. Имена элементов возвращаются в порядке, зависящем от файловой системы.
Обратите внимание на способ проверки значения, возвращаемого функцией readdir() в приведенном ниже примере. В этом примере осуществляется проверка значения на идентичность (выражения идентичны, когда они равны и являются значениями одного типа - за более подробной информацией обратитесь к главе Операторы сравнения) значению FALSE, поскольку в ином случае, любой элемент каталога, чье имя может быть выражено как FALSE, остановит цикл (например, элемент с именем "0").
Пример кода
Обратите внимание, что функция readdir() также возвращает элементы с именами, и, если вы не хотите получать эти значения, просто отбрасывайте их:
Пример кода
Сбрасывает поток каталога, переданный в параметре catalog таким образом, чтобы тот указывал на начало каталога
Возвращает массив, содержащий имена файлов и каталогов, расположенных по пути, переданном в параметре catalog. Если каталог не является таковым, функция возвращает логическое значение FALSE и генерирует сообщение об ошибке уровня E_WARNING.
По умолчанию, сортировка производится в алфавитном порядке по возрастанию. Если указан необязательный параметр order (равен 1), сортировка производится в алфавитном порядке по убыванию. Пример кода
Результатом будет нечто вроде:
Array
( => .
=> ..
=> bar.php
=> foo.txt
=> somedir)
Array
( => somedir
=> foo.txt
=> bar.php
=> ..
=> .)
Пример кода
РЕЗУЛЬТАТ ПРИМЕРА:
Array ( => . => .. => bar.php => foo.txt => somedir) Array ( => somedir => foo.txt => bar.php => .. => .)
PHP - Работа с файлами
Правильно работать с файлами должен уметь каждый программист. Данная статья ориентирована на начинающих PHP программистов, однако «сборник рецептов» будет полезен и продвинутым пользователям.
Работа с файлами разделяется на 3 этапа:
- Открытие файла.
- Манипуляции с данными.
- Закрытие файла.
I. Открытие файла
Для того чтобы открыть файл в среде PHP используется функция fopen(). Обязательными параметрами этой функции является имя файла и режим файла.
Согласно документации PHP выделяют следующие виды режимов файлов:
- r – открытие файла только для чтения.
- r+ - открытие файла одновременно на чтение и запись.
- w – создание нового пустого файла. Если на момент вызова уже существует такой файл, то он уничтожается.
- w+ - аналогичен r+, только если на момент вызова файла такой существует, его содержимое удаляется.
- a – открывает существующий файл в режиме записи, при этом указатель сдвигается на последний байт файла (на конец файла).
- a+ - открывает файл в режиме чтения и записи при этом указатель сдвигается на последний байт файла (на конец файла). Содержимое файла не удаляется.
Примечание: в конце любой из строк может существовать еще один необязательный параметр: b или t. Если указан b, то файл открывается в режиме бинарного чтения/записи. Если же t, то для файла устанавливается режим трансляции перевода строки, т.е. он воспринимается как текстовый.
Для демонстрации рассмотрим следующий сценарий:
//Открывает файл в разных режимах
$fp = fopen("counter.txt", "r"); // Бинарный режим
$fp = fopen("counter.txt", "rt"); // Текстовый режим
$fp = fopen("http://www.yandex.ru", "r");// Открывает HTTP соединение на чтение
$fp = fopen("ftp://user:[email protected]", "w"); //Открываем FTP соединение с указанием логина и пароля
II. Манипуляции с данными файла
Записывать данные в файл при помощи PHP можно при помощи функции fwrite(). Это функция принимает 2 обязательных параметра и 1 необязательный. В качестве обязательных параметров выступает дескриптор файла и режим файла:
$fp = fopen("counter.txt", "a"); // Открываем файл в режиме записи
$mytext = "Это строку необходимо нам записать\r\n"; // Исходная строка
$test = fwrite($fp, $mytext); // Запись в файл
If ($test)
Echo "Данные в файл успешно занесены.";
Else
Echo "Ошибка при записи в файл.";
Fclose($fp); //Закрытие файла
Для построчного считывания файла используют функцию fgets(). Функция принимает 2 обязательных параметра:
If ($fp)
While (!feof($fp))
$mytext = fgets($fp, 999);
Echo $mytext."
";
Else
Fclose($fp);
Примечание: В данном примере значение 999 определяет количество символов, которые будут считываться до тех пор, пока указатель не достигнет конца файла (EOF).
Echo readfile("counter.txt");
Также можно использовать функцию fpassthru() которая принимает 1 обязательный параметр. Перед использованием этой функции необходимо открыть файл в режиме чтения. По окончанию считывания файла функция автоматически закрывает файл(при этом дескриптор файла становиться недействительным).
$fp = fopen("counter.txt", "r"); // Открываем файл в режиме чтения
If ($fp)
Echo fpassthru($fp);
Else
Echo "Ошибка при открытии файла";
Очень часто встречаются ситуации, когда необходимо содержимое сайта считать в массив. Эту возможность предусматривает использование функции file(). При вызове этой функции, каждая строка файла сохранятся в отдельном элементе указанного массива.
Примечание: Не следует применять функцию file() к двоичным файлам (binary-safe), т.к. она не является безопасной в плане считывания двоичных файлов, если при этом, где-то встретиться символ конца файла (EOF), то она не гарантирует вам чтение всего двоичного файла.
$file_array = file("counter.txt"); // Считывание файла в массив $file_array
// Работа с данными массива
Примечание: Работа с массивами подробно описывается здесь, авторы: Мухаметшин Д.Ф., Симдянов И.В.
В конце статьи, вы найдете хороший «сборник рецептов» по массивам, который дает решение многих проблем, с которыми ежедневно встречается веб-программист.
авайте представим ситуацию, когда файл необходимо считать по символам. Для этого мы можем воспользоваться функцией fgetc(). Функция принимает единственный параметр. Функция полезна если нам необходимо найти какой-либо символ или количество одинаковых символов.
$fp = fopen("counter.txt", "r"); // Открываем файл в режиме чтения
If ($fp)
While(!feof($fp))
$char = fgetc($fp);
If ($char == "с")
$i = $i + 1;// Находим символ «с»
Echo "Количество букв "c" в файле: ". $i;
Else echo "Ошибка при открытии файла";
III. Закрытие файла
Закрытие файла происходить с помощью функции fclose(), которая принимает 1 обязательный параметр.
$fp = fopen("counter.txt", "r");
If ($fp)
Echo "Файл открыт";
Fclose($fp); // Закрытие файла
Сборник рецептов
1) Нам необходимо проверить существует ли тот или иной файл. Для этого мы воспользуемся функцией file_exists().
myfile("counter.txt"); // Используем функцию myfile, передав в качестве аргумента имя файла
function myfile($name) //Создаем функцию для проверки существования файла
If (file_exists($name)) echo "Файл существует";
Примечание: Функция file_exists не производит проверку файлов на удаленном веб-сервере. Для правильной работы функции, файл со скриптом должен находиться на том сервере, где и проверяемый файл.
2) Определяем размер файла с помощью функции filesize()
myfile("counter.txt");
//Создаем функцию для проверки существования файла и определения размера файла
function myfile($name)
If (file_exists($name)) echo "Размер файла: ".filesize($name)." байт";
Else echo "Файл не существует";
3) Создание временного файла с помощью функции tmpfile()
$myfile = tmpfile();
// Записываем во временный файл
Fwrite($myfile, "Эта строка записывается во временный файл.");
Fseek($myfile, 0); // Устанавливаем указатель файла
Echo fread($myfile, 1024); // выводим содержимое файла
4) Вам необходимо определить количество строк в файле. Для этого используем функцию count()
$fp = file("counter.txt");
Echo "Количество строк в файле: ".count($fp);
5) Нам необходимо использовать механизм блокировки файла
$fp = fopen("counter.txt", "a");
Flock($fp, LOCK_EX); // Блокирование файла для записи
Fwrite($fp, "Строка для записи");
Flock($fp, LOCK_UN); // Снятие блокировки
Fclose($fp);
6) Нам необходимо удалить определенную строку из файла
$num_stroka = 5; //Удалим 5 строку из файла
$file = file("counter.txt"); // Считываем весь файл в массив
For($i = 0; $i < sizeof($file); $i++)
If($i == $num_stroka) unset($file[$i]);
$fp = fopen("counter.txt", "w");
Fputs($fp, implode("", $file));
Fclose($fp);
7) Определение типа файла. Используем функцию filetype(), которая принимает единственный параметр
$mytype = filetype("counter.txt");
Echo "Тип файла: ".$mytype;
После вызова строка может содержат одно из следующих значений:
file – обычный файл
dir – каталог
fifo – fifo-канал
block – блочно - ориентированное устройство
char – символьно - ориентированное устройство
unknown – неизвестный тип файла
8) Если вы хотите просмотреть все параметры файла, то следует воспользоваться функцией stat()
$filename = stat("counter.txt");
Echo "
";";Print_r($filename);
Echo "
9) Нам необходимо очистить файл, используем функцию ftruncate()
$fp = fopen("counter.txt", "a"); //Открываем файл в режиме записи
Ftruncate($fp, 0) // очищаем файл
10) Нам необходимо узнать дату последнего изменения файла, используем функцию filectime(). Функция возвращает значение времени в форме Unix timestamp.
Echo filectime("counter.txt");
Если вы самостоятельно усваиваете работу с php, то важно научиться читать данные из файла и вводить в него изменения. Запись в файл php ведется для разработки веб-приложений, изменений серверной информации и запуска внешний программ и включений.
Как работать с файлами php
Если у файла указано такое расширение, то значит в себе он содержит программный код, написанный на одноименном языке программирования. Для того, чтобы вести изменения, вам необходимо будет установить на своем ПК один из программных редакторов:
PHP Expert Editor;
. Dreamweaver;
. Eclipse PHP Development;
. PHPEdit.
Если вы создаете сайт, то необходимо часто использовать идентичные конструкции, которые удобно хранить в виде шаблонов в другом файле. Для этого лучше использовать include. После ввода этой функции необходимо сделать запись в файл php имени и расширения подключения, например, include 1.php. Эта конструкция поддерживает возможность множественного чтения подключаемого файла, и дополнительной особенностью является непрерывность исполнения кода при ошибке. Если что-либо пойдет не так, то код продолжит исполняться с новой строки.
Таким образом, вы подключите файл к своему коду. Еще одним способом является ввод require. В отличие от вышеописанного include, файл подключается до начала выполнения программного кода, но обратиться к нему можно всего один раз.
Проверка файла
Перед тем, как сделать запись в файл php, необходимо убедится в том, что он существует, а затем открыть его и провести необходимое редактирование. Для этого можно использовать функцию file_exists(), если она подтвердит наличие, то в окне редактора будет возвращен ответ TRUE, в противном случае - FALSE.
О том, что возможна запись данных в файл php, вас может известить иная функция is_file(). Она более надежна, чем file_exits, и большинство программистов для начала работы использует именно is_file. После того, как вы убедились в существовании файла, можно приступать к работе с ним.
Внесение изменений в файл
Первым инструментом, который можно использовать для внесения изменений в файл - fwrite (). Она записывает строки со следующим синтаксисом:
Int - манипулятор;
. String - переменная.
Существует еще одна аналогичная этой функции - fputs(), которая является псевдонимом. Различий между этими инструментами нет, можно использовать по выбору один или другой. Для учеников более распространена fwrite, а практикующие программисты чаще всего используют fputs.
Чтобы внести php запись в текстовый файл, необходимо соблюсти одно важное условие - он должен быть открыт для правок. Располагаться такой файл должен в папке с правами на запись.
Для работы попытайтесь сначала открыть текстовый документ в программе, а затем уже вносить правки посредством обычных инструментов.
// Открыть текстовый файл
$f = fopen("text.txt", "w");
// Записать строку текста
fwrite($f, "Hello! Good day!");
// Закрыть текстовый файл
fclose($f);
В этом примере text.txt - имя документа. Вы можете назвать его иначе: «Hello! Good day!» - пример текста, он может быть совершенно произвольным. Все изменения автоматически сохраняться в открытом файле.
Отметим, что PHP - это общего назначения. Он интенсивно применяется для создания веб-приложений. Данное решение поддерживается большинством хостинг-провайдеров. Речь идет о лидере среди средств, которые применяются для создания веб-сайтов. Теперь вы знаете, как сделать запись в файл php.