Сохраните переменные 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);
?>
Ответ 5
Используйте комбинацию 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
Ответ 6
Используйте serialize()
для переменной, затем сохраните строку в файле. позже вы сможете прочитать сериализованный var из файла и перестроить исходный var (например, это была строка или массив или объект)