Есть у нас файл text.php в нём хранится ассоциативный массив с данными Есть форма через которую нужно добавить в него информацию Файл text.php: PHP: $translate = [ 'something' => "something2" ]; Файл обработки: PHP: include 'text.php'; $file = 'text.php'; if(isset($_POST['submititem'])) { $dasder = array($_POST['additemn'] => $_POST['additem']); $translate = array_merge($translate, $dasder); $current = file_get_contents($file); $current .= $translate; file_put_contents($file, $current); } Если написать так то всё что я получу это слово "Array" в не массива в конце. Вопрос сложный, надеюсь получу ответ, если так - буду очень признателен
1. для хранения данных давно придуманы удобные способы - БД 2. так вы записываете именно массив, хотите текст - преобразуйте в него как-то так: PHP: $lines = '$translate = ['; foreach ($translate AS $key => $item) { $lines.="'$key' => '$item',".PHP_EOL; } $lines .= ']'; file_put_contents($file, $lines);
PHP: <?php include 'text.php'; $file = 'text.php'; if(isset($_POST['addititem'])) { $current = file_get_contents($file); $current = substr($current,0,strlen($current)-2).$_POST['additemn'] .'=>'. $_POST['additem'].'];'; file_put_contents($file, $current); } ?>
Просто, вау! Спасибо большое. Я так много просидел, пробуя разные варианты, в том числе и вышеперечисленные, но именно этот работает должным образом. Правда сложный код, даже не прочитаю, ну хоть работает.
Здесь PHP: $current = substr($current,0,strlen($current)-2).$_POST['additemn'] .'=>'. $_POST['additem'].'];'; Я конструирую строку из полученной в этом выражении: PHP: $current = file_get_contents($file); Для этого я отрезаю последние два символа ]; и добавляю оставшиеся элементы, чтобы строка выглядела как массив.