valor - Guardar variables PHP en un archivo de texto
guardar variable php en txt (7)
(Lo siento, no puedo comentar todavía, de lo contrario lo haría)
Para agregar a la respuesta de Christian, puedes considerar usar json_encode
y json_decode
lugar de serialize
y unserialize
para mantenerte seguro. Vea una advertencia de la página del manual de PHP:
Advertencia
No pase una entrada de usuario no confiable a unserialize (). La deserialización puede hacer que el código se cargue y se ejecute debido a la instanciación de objetos y la carga automática, y un usuario malintencionado puede explotar esto. Use un formato de intercambio de datos estándar y seguro, como JSON (a través de json_decode () y json_encode ()) si necesita pasar datos serializados al usuario.
Así que su solución final podría tener lo siguiente:
$file = ''/tmp/file'';
$content = json_encode($my_variable);
file_put_contents($file, $content);
$content = json_decode(file_get_contents($file), TRUE);
Me preguntaba cómo guardar las variables de PHP en un archivo txt y luego recuperarlas de nuevo.
Ejemplo:
Hay un cuadro de entrada, después de enviar las cosas que se escribieron en el cuadro de entrada se guardarán en un archivo de texto. Más tarde, los resultados deben ser devueltos como una variable. Así que digamos que la variable es $ texto. Necesito que se guarde en un archivo de texto y pueda recuperarlo nuevamente.
Bien, entonces necesitaba una solución para esto, y tomé prestado mucho de las respuestas a esta pregunta e hice una biblioteca: https://github.com/rahuldottech/varDx (Licenciado bajo la licencia MIT).
Utiliza serialize()
y unserialize()
y escribe datos en un archivo. Puede leer y escribir múltiples objetos / variables / lo que sea hacia y desde el mismo archivo.
Uso:
<?php
require ''varDx.php'';
$dx = new /varDx/cDX; //create an object
$dx->def(''file.dat''); //define data file
$val1 = "this is a string";
$dx->write(''data1'', $val1); //writes key to file
echo $dx->read(''data1''); //returns key value from file
Vea la página de github para más información. Tiene funciones para leer, escribir, revisar, modificar y borrar datos.
Esto debería hacer lo que quieras, pero sin más contexto, no puedo asegurarlo.
Escribiendo $ texto a un archivo:
$text = "Anything";
$var_str = var_export($text, true);
$var = "<?php/n/n/$text = $var_str;/n/n?>";
file_put_contents(''filename.php'', $var);
Recuperándolo de nuevo:
include ''filename.php'';
echo $text;
Personalmente, usaría file_put_contents y file_get_contents (estos son envoltorios para fopen, fputs, etc.).
Además, si va a escribir algún dato estructurado, como matrices, le sugiero que serialice y deserialice el contenido de los archivos.
$file = ''/tmp/file'';
$content = serialize($my_variable);
file_put_contents($file, $content);
$content = unserialize(file_get_contents($file));
Use serialize()
en la variable, luego guarde la cadena en un archivo. más tarde, podrá leer la var en serie del archivo y reconstruir la var original (ya sea una cadena o una matriz o un objeto)
Use una combinación de fopen
, fwrite
y fread
. PHP.net tiene una excelente documentación y ejemplos de cada uno de ellos.
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
por ejemplo , tienes anyFile.php, y está escrito $any_variable=''hi Frank'';
para cambiar esa variable a hi Jack
, use como el siguiente código:
<?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);
?>