Изучаем PHP 7. №19. Работа с файлами. Пишем скрипт простейшего каталога файлов с возможностью редактировать.

PHP 7. Работа с файлами. Пишем скрипт простейшего каталога файлов с возможностью редактировать.
Решил привести пример простейшего каталога файлов. Фалы можно создавать, редактировать и удалять.
Потребуется совсем немного. Создать файлы index.php и func.php, а также каталог files, где будут храниться файлы.
Вот как все будет выглядеть в результате. Создание документа:


Работа с файлами. Пишем скрипт простейшего каталога файлов с возможностью редактировать.
Редактирование:
Работа с файлами. Пишем скрипт простейшего каталога файлов с возможностью редактировать.

Код файла index.php:

<meta charset="utf-8">
<?php include_once('func.php'); ?>
<!-- Форма Создания файла -->
<h3>Создать файл</h3>
<form method="post">
<input type="text" name="filename" placeholder="Название файла" required><br>
<textarea name="text" rows="5" cols="33" placeholder="Текст файла"></textarea><br>
<input type="submit" name="send" value="Создать">
</form>

<?php
// Создаем файл
if($_POST['send']){
  $filename = $_POST['filename'];
  $text = $_POST['text'];
  fcreate($filename,$text,'w');
}

// Редактируем файл
if($_GET['filename']){
  $filename = $_GET['filename'];
  update($filename);
}

// Удаляем файл
if($_GET['del']){
  $filename = $_GET['del'];
  fdel($filename);
}

// Выводим список файлов в каталоге files
$dir  = 'files/';
  $files = scandir($dir,1 );
  foreach ($files as $file){
    echo "<li>$file | <a href='?filename=$file'>Edit</a> |  <a href='?del=$file'>DEL</a> </li> <br>";
  }

 ?>

Код файла func.php:

<?php 

// создание документа
function fcreate($filename,$string,$mod = 'w'){
  //путь к файлу
  $path = 'files/'.$filename;

  //создаем файл и открываем его для записи
  $file = fopen($path, $mod);

  //Записываем строку в файл
  $write = fwrite($file, $string);

  // проверяем успешность выполнения операции
  if($write) echo "Данные успешно записаны!<br>";
  else echo "Не удалось записать данные!<br>";

  //закрываем файл
  fclose($file);
}


//чтение документа
function fileread($filename){
  //путь к файлу
  $path = 'files/'.$filename;

  //открываем файл для чтения
  $file = fopen($path,'r');

  // если файл успешно открылся
  if($file){

    // тогда пока файл не достигнет конца
    while (!feof($file)) {

      // считываем данные с файла
      $read = fgets($file);

      // и выводим текст на экран
      return $read;
    }
  }
  // если файл не открылся, то сообщаем об этом
  else echo "Ошибка при открытии файла<br>";

  // Закрываем файл
  fclose($file);
}

//Редактирование файла
function update($filename){
  echo "<hr><h3>Редактирование файла $filename</h3>";
  $ftex = fileread($filename);
  echo '
  <form method="post">
  <input type="text" name="filename" placeholder="Название файла" value="'.$filename.'" required><br>
  <textarea name="text" rows="5" cols="33" placeholder="Текст файла">'.$ftex.'</textarea><br>
  <input type="submit" name="update" value="Редактировать">
  </form>
  ';
  if($_POST['update']){
    $filename = $_POST['filename'];
    $text = $_POST['text'];
    fcreate($filename,$text,'w');
  }
}

//удаление
function fdel($filename){
  if(unlink('files/'.$filename)) echo "Файл удален!";
}

 ?>

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

———————————-
Нужно перевезти сервера или другой хлам, тогда заказывайте погрузчик www.pogruzchik.dn.ua. Ребята погрузят погрузят, разгрузят и оформят все как надо.

16 идей о “Изучаем PHP 7. №19. Работа с файлами. Пишем скрипт простейшего каталога файлов с возможностью редактировать.

  1. Алексей

    index.php

    CORE v0.1

    ^ ^ ^

    <input type="text" name="filename" placeholder=" ^ ^ $
    <textarea name="text" rows="5" cols="33" placeholder=" ^ ^ ^ $

    <?php
    if($_POST['send']){
    $filename = $_POST['filename'];
    $text = $_POST['text'];
    fcreate($filename,$text,'w');
    }
    if($_GET['filename']){
    $filename = $_GET['filename'];
    update($filename);
    }
    if($_GET['del']){
    $filename = $_GET['del'];
    fdel($filename);
    }
    $dir = 'files/';
    $files = scandir($dir,1 );
    foreach ($files as $file){
    echo "$file | Edit |

    func.php
    <?php
    function fcreate($filename,$string,$mod = 'w'){
    $path = 'files/'.$filename;
    $file = fopen($path, $mod);
    $write = fwrite($file, $string);
    if($write) echo " ^ ^ ^ ^ ^ ^ ^ !$
    else echo » ^ ^ ^ ^ ^ ^ ^ ^ !$
    fclose($file);
    }
    function fileread($filename){
    $path = ‘files/’.$filename;
    $file = fopen($path,’r’);
    if($file){
    while (!feof($file)) {
    $read = fgets($file);
    return $read;
    }
    }
    else echo » ^ ^ ^ ^ ^ ^ ^ ^ «;
    fclose($file);
    }
    function update($filename){
    echo » ^ ^ ^ $filename»;
    $ftex = fileread($filename);
    echo ‘

    <input type="text" name="filename" placeholder=" ^ ^ $
    <textarea name="text" rows="5" cols="33" placeholder=" ^ ^ ^ $

    ‘;
    if($_POST[‘update’]){
    $filename = $_POST[‘filename’];
    $text = $_POST[‘text’];
    fcreate($filename,$text,’w’);
    }
    }
    function fdel($filename){
    if(unlink(‘files/’.$filename)) echo » ^ !»;
    }
    ?>

    взял через терминал по ssh (nano через терминал плохо видит русскую кодировку)

    1. Виталий Слюсар

      Ну что, запустил твой скрипт, у меня все работает.
      Тестирую на OpenServer. Похоже, что у тебя что-то с настройками сервера. Посмотри в ошибки.
      Возможно, нет доступа к папке, в которой скрипт пытается создать файл. Попробуй дать на все директории chmod 777 и Разреши php показывать ошибки, чтобы найти где бока.

  2. Алексей

    вернусь домой проверю но разрешение всей папке давал 755. незнаю как php разрешить показывать ошибки. в виртуалке
    и на собственном пк до этого пробовал, таже хрень.

  3. Алексей

    Был в Бресте зашел в книжный магазин на бульваре Космонавтов, там книга PHP7 стоит 40евро. Полистал ничег особенного есть и другие языки Python, Java…

  4. Алексей

    //путь к файлу
    $path = ‘files/’.$filename; 8
    я как понял в корне нужно создать папку files или в рабочей папке. возможно в этом беда.

  5. Алексей

    Вот, нужна функция создания папки.

    ps Да, а изучением чужого языка забываем про свой.

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

×