Наше прошлое 20072009201120132014
г. Москва, ул. Гостиничная, д. 7А. кор.2
8 (499) 404-26-56
пн-пт 11:00 - 19:00
 

Работа с файлами на PHP

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

Для записи и чтения файлов есть функция fopen, рассмотрим на примере.

Запись в файл

<?php
//Отвыкаем файл для записи, и записываем, если файла нет, он создается.
//Если есть то вся информация стирается
$handle = fopen("1.txt", "w");
//Записываем текст в открытый файл
fwrite($handle, "Дизайн студия ox2.ru занимается созданием интернет-магазинов"); 
fclose($handle); //Закрываем файл
?>

$handle = fopen("1.txt", "w");

Тут мы открываем файл, параметр "w" говорит что файл будет для записи. В переменную $handle записываем id-ресурса файла для последующей работы с ним (например записи, или чтения).

Помимо "w" в php есть следующие параметры:

r - чтение

w - запись, если файла не существует, то он создается, если файл существует, то вся информация в нем стирается

a - дозапись, если файла не существует, то он создается, если файл существует, то информация записывается в конец

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

<?php
    $handle = fopen("1.txt", "a");
    fwrite($handle, "В компании ox2.ru вы можете заказать себе интернет-магазин");
    fclose($handle);
?>

Дозапись файла

<?php
    $handle = fopen("1.txt", "r");
    echo fread($handle, filesize("1.txt")); //Выводим содержимое файла
    fclose($handle);
?>

Функцией filesize("1.txt") — мы подсчитываем количество символов в файле, тоесть читаем файл полностью. 
Если указать вместо filesize("1.txt") — цифру 10, то будут прочтены первые 10 символов

Запись массива в файл

Иногда требуется записать в файл не строку, а массив. Для этих целей есть функция serialize/unserialize.

Функция serialize преобразует массив в строку, которую мы можем записать в файл. Функция unserialize делает обратную операцию, преобразует строку в массив. 
Вот пример:

<?php
$arr = array();
    $arr[1] = "ox2.ru";
    $arr[2] = "заказать интернет-магазин";
    $arr[3] = "троло-ло";

    $handle = fopen("1.txt", "w");
    fwrite($handle, serialize($arr)); //Преобразуем массив в строку, и записываем в файл
    fclose($handle); //Закрываем файл

    //После сериализации, наш массив будет выглядеть вот так:
    //a:3:{i:1;s:6:"ox2.ru";i:2;s:25:"заказать интернет-магазин";i:3;s:8:"троло-ло";}

    $handle = fopen("1.txt", "r");
   //Читаем из файла текст, и преобразовываем обратно в массив
    $arr = unserialize(fread($handle, filesize("1.txt"))); 
    fclose($handle); //Закрываем файл

    print_r($arr); //Выводим массив
?>
Очень часто люди хотят заказать интернет-магазин, в котором часть информации будет записываться в файлы. Например, различные отчеты, сверки и т.д. Это удобно, т.к. не обязательно всегда с собой носить пароли от системы управления интернет-магазином, а можно просто скинуть текстовой файлик на флешку.

Комментарии

Нет комментариев

Заполните все поля

Написать комментарий

Ваше имя

Комментарий