Me gustaría imprimir una matriz en un archivo.
Me gustaría que el archivo se vea exactamente similar al aspecto de un código como este.
print_r ($abc);
suponiendo que $ abc es una matriz.
¿Hay alguna solución de líneas para esto en lugar de regular para cada aspecto?
PD: actualmente uso serializar pero quiero que los archivos sean legibles ya que la legibilidad es bastante difícil con las matrices serializadas.
php
serialization
Atif Mohammed Ameenuddin
fuente
fuente
implode
la matrizPHP_EOL
y escribe la cadena resultante en el archivo.var_export
es mejor si desea guardar el archivo en sintaxis php.print_r
vuelve[m] => monkey
perovar_export
vuelve'm' => 'monkey'
Solo usa
print_r
; ) Lea la documentación :Entonces esta es una posibilidad:
fuente
file_put_contents($file, print_r($array, true), FILE_APPEND)
fuente
Tu podrías intentar:
fuente
true
parámetro de var_export, de lo contrario no hay contenido para escribir en el archivo.Rápido y simple hacer esto:
fuente
Puedes probar esto,
$myArray
como la matrizfuente
Acabo de escribir esta función para generar una matriz como texto:
Debería generar una matriz bien formateada.
NOTA IMPORTANTE:
Cuidado con la entrada del usuario.
Este script fue creado para uso interno.
Si tiene la intención de usar esto para uso público, deberá agregar alguna validación de datos adicional para evitar la inyección de script.
Esto no es infalible y solo debe usarse con datos confiables.
La siguiente función generará algo como:
aquí está la función (nota: la función está formateada actualmente para la implementación oop).
Alternativamente, puede usar este script que también escribí hace un tiempo:
Este es bueno para copiar y pegar partes de una matriz.
(Sería casi imposible hacerlo con salida serializada)
No es la función más limpia pero hace el trabajo.
Este saldrá como sigue:
También tenga cuidado con la entrada del usuario. Aquí está el código.
fuente
solo use
file_put_contents('file',$myarray);
file_put_contents () también funciona con matrices.fuente
Esto es lo que aprendí en las últimas 17 horas que resolvió mi problema mientras buscaba una solución similar.
recursos:
http://php.net/manual/en/language.types.array.php
Código especifico:
Lo que tomé de arriba, $ arr [fruit] puede ir dentro de "" (comillas dobles) y ser aceptado como cadena por PHP para su posterior procesamiento.
El segundo recurso es el código en una de las respuestas anteriores:
Esto es lo segundo que no sabía, FILE_APPEND.
Lo que estaba tratando de lograr es obtener contenido de un archivo, editar los datos deseados y actualizar el archivo con datos nuevos, pero después de eliminar los datos antiguos.
Ahora solo necesito saber cómo eliminar datos del archivo antes de agregar datos actualizados.
Sobre otras soluciones:
Solo para que pueda ser útil para otras personas; cuando probé var_export o Print_r o Serialize o Json.Encode , obtuve caracteres especiales como => o; o 'o [] en el archivo o algún tipo de error. Intenté demasiadas cosas para recordar todos los errores. Por lo tanto, si alguien quiere probarlos nuevamente (puede tener un escenario diferente al mío), puede esperar errores.
Acerca de la lectura de archivos, edición y actualización:
Utilicé la función fgets () para cargar la matriz de archivos en una variable ($ array) y luego utilicé unset ($ array [x]) (donde x representa el número de matriz deseado, 1,2,3, etc.) para eliminar una matriz particular. Luego use array_values () para volver a indexar y cargar la matriz en otra variable y luego use un bucle while y soluciones anteriores para volcar la matriz (sin caracteres especiales) en el archivo de destino.
fuente
A continuación debería funcionar bien y ser más legible usando
<pre>
fuente
Sin embargo, op necesita escribir una matriz, ya que está en el archivo. He llegado a esta página para encontrar una solución donde pueda escribir una matriz en un archivo y que pueda leer fácilmente más tarde usando php nuevamente.
He encontrado la solución yo mismo usando json_encode, por lo que cualquier otra persona está buscando lo mismo, aquí está el código:
que leer
fuente
prueba.php
index.php
fuente