alt

Когда человеку тяжело,
это часто означает,
что он идёт к успеху.

alt


Создание файла средствами PHP и последующей записью в файл.

Категория: Скрипты php Просмотров: 5808 Коментариев: 0 Дата: 2017-01-17 Добавил: admin

 Создание файла средствами PHP

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

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

Создается файл на PHP следующим образом:

PHP
//полученный результат после запроса в базу 
$data['demo'] = "Ваш запрос в базу данных для получения кода демо-версии";
// открываем файл, если файл не существует,
     //делам попытку создать его
     $create_file = fopen("temp_file.php", "w");
     // записываем в файл текст
     fwrite($create_file, $data['demo']);
     // закрываем файл
     fclose($create_file);

Код выше создаст файл temp_file.php и запишет в него полученные из базы данные, уже хранящиеся в массиве $data ['demo']. Но нужно помнить и быть аккуратным, т.к. если файл с таким именем уже существует, то все содержимое в нем будет (утеряно) перезаписано на новое.

В этом случае можно проверить существование файла например так:

PHP
// 
$data['demo'] = "0123456789";

if ( !file_exists( " temp_file.php " ) ) 
{ // если файл НЕ существует то создадим его и запишем в него значение  $data['demo']
     $create_file = fopen ("temp_file.php ", "w");   
     fwrite($create_file, $data['demo']);   
     fclose($create_file);  
   } 
   else 
{ 
  echo 'Создать файл не удалось. Файл был создан раньше или возникла ошибка при создании файла.'; 
}

В функции fopen() после имени файла указывается параметр (флаг) "w" необходимый для указания режима работы с файлом. Существует 6 таких параметров для использования.

  • "r" – Файл открывается только для его чтения; указатель помещается в начало файла.
  • "r+" – Файл открывается для чтения и разрешает произвести запись в него; указатель помещается в начало файла.
  • "w" – Файл открывается для записи; указатель помещается в начало файла. Если файл не существует, делается попытка создать его.
  • "w+" – Файл открывается для чтения и разрешает произвести запись в него; указатель помещается в начало файла. Если файл не существует, делается попытка создать его.
  • "a" – Файл открывается только для записи; указатель помещается в конец файла. Если файл не существует, делается попытка создать его.
  • "a+" – Файл открывается для чтения и разрешает произвести запись в него; указатель помещается в конец файла. Если файл не существует, делается попытка создать его.

В этой же функции fopen() задается и директория, в которой нужно создать наш файл. В примере файл создастся в текущей директории (в корне проекта).

Вот некоторые правила описания пути к файлу.

  • temp_file.php – Файл расположен в текущей директории.
  • ./views/temp_file.php – Файл расположен в папке views, которая находящейся в текущей директории. Длина директории не ограничивается.
  • ../temp_file.php – Файл расположен в предыдущей директории. Каждый знак ../ расценивается как возврат в родительскую директорию.
  • ../views/temp_file.php – Файл расположен в папке views, которая лежит в предыдущей директории.

Например, чтобы создать файл в каталоге, который на 3 уровня выше текущей директории (считаем корень проекта) формируем такую структуру записи:

Пример:   ./application(папка1)/views(папка2)/demo_view(папка3)/temp_file_view.php 

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




Добавить комментарий:


Ваше имя

Текст комментария


Введите буквы с учетом регистра:





Апдейты

Популярное Свежие записи

Облако тегов