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

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

Пример:

Имеется поле ввода, после подачи материала, написанного в поле ввода будет сохранено в текстовом файле. Позже результаты для возвращения в качестве переменной. Так что скажем, что переменная $text I нужно сохранить его в текстовый файл и получить его обратно еще раз.

Ответы

Ответ 1

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

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

$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;

Ответ 2

Лично я бы использовал 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));

Ответ 3

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

Чтобы добавить к христианскому ответу, вы можете использовать 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);

Ответ 4

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);
?>

Ответ 6

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