Сохраните переменные PHP в текстовый файл

Мне было интересно, как сохранить переменные PHP в txt-файле, а затем восстановить их снова.

Пример:

Существует поле ввода, после того как отправленные материалы, которые были записаны в поле ввода, будут сохранены в текстовый файл. Позже результаты должны быть возвращены как переменная. Поэтому давайте скажем, что переменная – это текст, который мне нужен, чтобы быть сохраненным в текстовом файле и иметь возможность вернуть его обратно.

Это должно делать то, что вы хотите, но без лишнего контекста я не могу точно сказать.

Запись текстового файла в файл:

 $text = "Anything"; $var_str = var_export($text, true); $var = "<?php\n\n\$text = $var_str;\n\n?>"; file_put_contents('filename.php', $var); 

Возврат:

 include 'filename.php'; echo $text; 

Лично я бы использовал file_put_contents и file_get_contents (это обертки для fopen, fputs и т. Д.).

Кроме того, если вы собираетесь писать какие-либо структурированные данные, например массивы, я предлагаю вам сериализовать и unserialize содержимое файлов.

 $file = '/tmp/file'; $content = serialize($my_variable); file_put_contents($file, $content); $content = unserialize(file_get_contents($file)); 

(Извините, я пока не могу комментировать, иначе я бы)

Чтобы добавить к ответу Кристиана, вы можете использовать json_encode и json_decode вместо serialize и unserialize чтобы вы были в безопасности. См. Предупреждение на странице руководства PHP:

Предупреждение

Не пропускайте недоверенный ввод пользователя в unserialize (). Несериализация может привести к тому, что код загружается и выполняется из-за экземпляра объекта и автозагрузки, и злоумышленник может воспользоваться этим. Используйте безопасный стандартный формат обмена данными, такой как JSON (через json_decode () и json_encode ()), если вам необходимо передать сериализованные данные пользователю.

Таким образом, ваше окончательное решение может иметь следующее:

 $file = '/tmp/file'; $content = json_encode($my_variable); file_put_contents($file, $content); $content = json_decode(file_get_contents($file), TRUE); 

for_example , у вас есть anyFile.php, и там написано $any_variable='hi Frank';

чтобы изменить эту переменную на hi Jack , используйте следующий код:

 <?php $content = file_get_contents('anyFile.php'); $new_content = preg_replace('/\$any_variable=\"(.*?)\";/', '$any_variable="hi Jack";', $content); file_put_contents('anyFile.php', $new_content); ?> 

Используйте комбинацию fopen , fwrite и fread . PHP.net имеет отличную документацию и примеры каждого из них.

http://us2.php.net/manual/en/function.fopen.php
http://us2.php.net/manual/en/function.fwrite.php
http://us2.php.net/manual/en/function.fread.php

Используйте serialize() для переменной, затем сохраните строку в файле. позже вы сможете прочитать сериализованный var из файла и перестроить исходный var (пусть это была строка или массив или объект)