file_put_contents file_get_contents example error ejemplos ejemplo php file-io

file_get_contents - fread php



¿Qué es más rápido? file_put_contents(); fopen(); fwrite(); fclose();? (5)

¿Qué es mejor? Tengo mi propio registro de MySQL, así que tiene unos 90 MB, pero no estoy seguro de cuál debo usar. Abre el archivo EVERYTIME hay una consulta para ejecutar.

¿Qué es más rápido?


  1. Si solo hay una operación de escritura para un archivo en una solicitud, file_put_contents es mejor que fwrite, porque tiene funciones de apertura, escritura y cierre, y tan rápido como fwrite.
  2. Si hay múltiples escrituras para un archivo en una solicitud, primero necesitamos abrir el archivo y luego escribir varias veces, por lo que fwrite es más rápido. Pero, si es un sistema muy ocupado, que tiene muchos "archivos abiertos" (ulimit -a | grep "archivos abiertos"), file_put_contents será una opción más razonable, ya que mantiene el manejador de archivos más corto que fwrite.

Como de costumbre, ¿lo has comparado? file_put_contents es básicamente un envoltorio alrededor de las llamadas 3 f*() todos modos, por lo que a lo sumo estás perdiendo al hacer una llamada de función extra, pero gana un poco teniendo menos código de front-end para analizar.


Depende de tu caso de uso. Abrí archivos de más de .5 GB y no quería usar file () ni file_get_contents (); Y file_put_contents no pudo funcionar porque también necesitaba leer el archivo.

Si realmente está interesado en agregar un archivo sin leer, no tiene importancia; si intenta leer un archivo completo en la memoria (o escribir un archivo completo desde la memoria), de igual manera no importa: la ganancia de velocidad, por lo que he visto, es un error de redondeo.

PERO, si está esperando que estos archivos lleguen a convertirse en bestias gigantescas, o si solo necesita un pequeño subconjunto del número de líneas de un archivo determinado, no puedo sugerir el uso de fopen (o SplFileObject , que es SplFileObject ) lo suficientemente fuerte - es muy fácil leer desde el medio de un archivo con estos.

Ya que solo está iniciando sesión, por otro lado, personalmente, me resulta más claro y más conciso simplemente usar file_put_contents con el indicador de agregar. Les permite a todos saber lo que está sucediendo sin tener que mirar dos veces.



Según este artículo , fwrite() es un smidgen más rápido. (Enlace a Wayback Machine, porque el sitio ya no existe).

Mi suposición es que file_put_contents() es solo una envoltura alrededor de esos tres métodos de todos modos, por lo que perdería la sobrecarga.

EDITAR : Este sitio tiene la misma información.