За последние 24 часа нас посетили 20847 программистов и 1141 робот. Сейчас ищут 627 программистов ...

Как добавлять из формы данные в массив в другом файле?

Тема в разделе "PHP для новичков", создана пользователем Dasderdas, 5 апр 2022.

  1. Dasderdas

    Dasderdas Новичок

    С нами с:
    29 мар 2022
    Сообщения:
    69
    Симпатии:
    0
    Есть у нас файл text.php в нём хранится ассоциативный массив с данными
    Есть форма через которую нужно добавить в него информацию
    Файл text.php:
    PHP:
    1. $translate = [
    2.     'something' => "something2"
    3. ];
    Файл обработки:
    PHP:
    1. include 'text.php';
    2. $file = 'text.php';
    3. if(isset($_POST['submititem'])) {
    4. $dasder =  array($_POST['additemn'] => $_POST['additem']);
    5. $translate = array_merge($translate, $dasder);
    6.  
    7. $current = file_get_contents($file);
    8. $current .= $translate;
    9. file_put_contents($file, $current);
    10. }
    Если написать так то всё что я получу это слово "Array" в не массива в конце.
    Вопрос сложный, надеюсь получу ответ, если так - буду очень признателен
     
  2. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.816
    Симпатии:
    735
    Адрес:
    Татарстан
    1. для хранения данных давно придуманы удобные способы - БД
    2. так вы записываете именно массив, хотите текст - преобразуйте в него
    как-то так:
    PHP:
    1. $lines = '$translate = [';
    2. foreach ($translate AS $key => $item) {
    3.   $lines.="'$key' => '$item',".PHP_EOL;
    4. }
    5. $lines .= ']';
    6. file_put_contents($file, $lines);
     
  3. twim32

    twim32 Активный пользователь

    С нами с:
    29 мар 2017
    Сообщения:
    275
    Симпатии:
    58
    Или проще: храните в json
     
  4. antoniii

    antoniii Новичок

    С нами с:
    16 мар 2022
    Сообщения:
    417
    Симпатии:
    71
    PHP:
    1. <?php
    2. include 'text.php';
    3. $file = 'text.php';
    4. if(isset($_POST['addititem'])) {
    5. $current = file_get_contents($file);
    6. $current = substr($current,0,strlen($current)-2).$_POST['additemn'] .'=>'. $_POST['additem'].'];';
    7. file_put_contents($file, $current);
    8. }
    9. ?>
     
    Dasderdas нравится это.
  5. Dasderdas

    Dasderdas Новичок

    С нами с:
    29 мар 2022
    Сообщения:
    69
    Симпатии:
    0
    Просто, вау! Спасибо большое. Я так много просидел, пробуя разные варианты, в том числе и вышеперечисленные, но именно этот работает должным образом.
    Правда сложный код, даже не прочитаю, ну хоть работает.
     
  6. antoniii

    antoniii Новичок

    С нами с:
    16 мар 2022
    Сообщения:
    417
    Симпатии:
    71
    Здесь
    PHP:
    1. $current = substr($current,0,strlen($current)-2).$_POST['additemn'] .'=>'. $_POST['additem'].'];';
    Я конструирую строку из полученной в этом выражении:
    PHP:
    1. $current = file_get_contents($file);
    Для этого я отрезаю последние два символа ]; и добавляю оставшиеся элементы, чтобы строка выглядела как массив.