За последние 24 часа нас посетили 20152 программиста и 1663 робота. Сейчас ищут 1765 программистов ...

Вывод информации из файла с добавлением в другой файл

Тема в разделе "Сделайте за меня", создана пользователем elfrom, 14 сен 2016.

  1. elfrom

    elfrom Новичок

    С нами с:
    14 сен 2016
    Сообщения:
    10
    Симпатии:
    0
    Добрый день!
    Подскажите примеры если кто либо сталкивался с такой задачей
    Имеется файл в формате in.txt (разделитель табуляция) либо in.csv (разделитель ;)
    в файле содержатся данные:
    код; название; дата начала; дата окончания; % выполнения
    нужно чтобы эти данные выводились в виде таблицы, построчно, в конце каждой строки была свободная ячейка для ввода цифрового значения, в конце либо в начале таблицы была кнопка сохранить. Ячейка в которую ввели цифровое значение сохранялась бы в файл out.txt со структурой
    код; введенное значение; дата
    например
    изначально в файле in.txt имеем данные
    4 ; работа_1 ; 01.01.16 ; 05.01.16 ; 20%
    5 ; работа_2 ; 02.01.16 ; 07.01.16 ; 30%

    пользователь сегодня (14.09.16) ввел напротив 1 работы значение 30 и нажал сохранить. В файле out.txt получили:

    4; 30; 14.09.2016

    Быть может кто подскажет где найти аналоги? или кто помочь возьмется ...
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    PHP:
    1. <?php
    2. header('Content-Type: text/html; charset=utf-8');
    3. ?>
    4. <!DOCTYPE html>
    5. <html>
    6. <head>
    7.     <title></title>
    8. </head>
    9. <body>
    10.  
    11. <form action="<?=$_SERVER['PHP_SELF']?>" method="POST">
    12. <table border="1">
    13.     <tr>
    14.         <td>1</td>
    15.         <td>2</td>
    16.         <td>3</td>
    17.         <td>4</td>
    18.         <td>5</td>
    19.         <td>6</td>
    20.     </tr>
    21. <?php
    22. $lines = file('in.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
    23. $rows = array();
    24.  
    25. foreach ($lines as $key => $line) {
    26.     $row = explode(';', $line);
    27.     $rows[$key] = $row;
    28.  
    29.     if (is_array($row) && count($row) == 5) {
    30. ?>
    31.     <tr>
    32.         <td>
    33.         <?=implode('</td><td>', $row)?>
    34.         </td>
    35.         <td><input type="text" name="keys[<?=$key?>]"></td>
    36.     </tr>
    37. <?php
    38.     }
    39. }
    40. ?>
    41.     <tr>
    42.         <td> </td>
    43.         <td> </td>
    44.         <td> </td>
    45.         <td> </td>
    46.         <td> </td>
    47.         <td><input type="submit" name="Создать out.txt"></td>
    48.     </tr>
    49. </table>
    50. </form>
    51.  
    52. <?php
    53. if (isset($_POST['keys']) && is_array($_POST['keys']) && count($_POST['keys'])>0) {
    54. $buff = '';
    55.     foreach ($_POST['keys'] as $key => $value) {
    56.         if (empty($value) === false) {
    57.             $buff .= implode(';', array($rows[$key][0], (new DateTime('now'))->format('d.m.y'), $value)).PHP_EOL;
    58.         }
    59.     }
    60. file_put_contents('out.txt', $buff)
    61. ?>
    62. <hr>
    63. <pre>
    64. <?=$buff?>
    65. </pre>
    66. <?php
    67. }
    68. ?>
    69. </body>
    70. </html>
     
    elfrom нравится это.
  3. elfrom

    elfrom Новичок

    С нами с:
    14 сен 2016
    Сообщения:
    10
    Симпатии:
    0
    Все замечательно, кроме одной маленькой проблемки , если нажать кнопку Отправить запрос, данные запишутся в файл out.txt и если еще раз нажать кнопку то они затрутся новыми, как сделать чтобы просто добавлялись записи ниже, еще раз большое спасибо!
     
  4. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    elfrom нравится это.