22 de abril de 2015

file_get_contents() y file_put_contents() en PHP

file_get_contents() se utiliza para obtener archivos desde PHP y es equivalente a usar fopen(), fgets() y fclose() por lo que es la manera abreviada y preferida de transmitir el contenido de un fichero a una cadena. Usa técnicas de mapeado de memoria, si está soportado por su sistema operativo, para mejorar el rendimiento. Esta función es similar a file(), excepto que file_get_contents() devuelve el fichero a un string, comenzando por el offset especificado hasta maxlen bytes. Si falla, file_get_contents() devolverá FALSE. Parametros de file_get_contents() filename Nombre del fichero a leer. use_include_path A partir de PHP 5, se puede usar la constante FILE_USE_INCLUDE_PATH para lanzar la búsqueda en include_path. context Un recurso de contexto válido creado con stream_context_create(). Si no se necesita usar un contexto a medida, se puede saltar este parámetro usando NULL. offset El índice donde comienza la lectura en el flujo original. La búsqueda de (offset) no está soportada con ficheros remotos. Intentar buscar un fichero no local puede funcionar con índices pequeños, pero es impredecible debido a que trabaja sobre el flujo almacenado en buffer. maxlen La longitud máxima de los datos leídos. De manera predeterminada se lee hasta que se alcance el final del fichero. Observe que este parámetro se aplica al flujo procesado por los filtros. file_put_contents() se utiliza para escribir en un archivo desde PHP y es equivalente a usar fopen(), fwrite() y fclose(). file_put_contents — Escribe una cadena a un fichero Si filename no existe, se crea el fichero. De otro modo, el fichero existente se sobrescribe, a menos que la bandera FILE_APPEND esté establecida. Ejemplo con file_get_contents y file_put_contents
<?php
$fichero = 'gente.txt';
// Abre el fichero para obtener el contenido existente
$actual = file_get_contents($fichero);
//$actual =  file_get_contents("$directorio".'/'."$elemento")
// Añade una nueva persona al fichero
$actual .= "John Smith\n";
// Escribe el contenido al fichero
file_put_contents($fichero, $actual);
?>
Ejemplo con file_put_contents
<?php
$fichero = 'gente.txt';
// La nueva persona a añadir al fichero
$persona = "John Smith\n";
// Escribir los contenidos en el fichero,
// usando la bandera FILE_APPEND para añadir el contenido al final del fichero
// y la bandera LOCK_EX para evitar que cualquiera escriba en el fichero al mismo tiempo
file_put_contents($fichero, $persona, FILE_APPEND | LOCK_EX);
?>
a continuación maestro un ejemplo sencillo para guardar la fecha, hora y especificación de un error dentro de un archive txt
<?php
$filename = "C:/Users/pabletoreto/Videos/Desktop/prueba.txt";
if(file_exists($filename)) {
$filestring = file_get_contents($filename, NULL, NULL);
//$filestring = file_get_contents('./hola.txt', NULL, NULL,6,12);
// print $filestring;
	echo "
"; $convert = explode("\n", $filestring); //crea array separado por nueva linea for ($i=0;$i"; } $filestring.= "\r\n"; $filestring.= "Log fecha ". date("Y/m/d")."\r\n"; $filestring.="Hora del incidente ". date("G:i:s"). "\r\n"; $filestring.= "agregando linea con error especificado"."\r\n"; file_put_contents($filename, $filestring); echo "
"; /* Otra manera: $persona = "pabletoreto\n"; file_put_contents($filename, $persona, FILE_APPEND | LOCK_EX); Escribir los contenidos en el fichero, usando la bandera FILE_APPEND para añadir el contenido al final del fichero y la bandera LOCK_EX para evitar que cualquiera escriba en el fichero al mismo tiempo*/ } else{ die("Archivo especificado no existe"); } ?>

Related Posts:

  • Patrón Factory PHPEl patrón Factory permita la instancia de objetos en tiempo de ejecución, la ventaja de utilizar este patrón de diseño es que tenemos centralizada la creación de los objetos en una clase que a pedido, nos devuelve instancias … Read More
  • Conexiones Persistentes PHPLa idea detrás de las conexiones persistentes es que una conexión entre un proceso cliente y una base de datos puede ser reutilizados por un proceso cliente, en lugar de ser creado y destruido varias veces. Esto reduce la sob… Read More
  • Patrón Singleton PHPSingleton o instancia única es un patrón de diseño cuya función es crear un único acceso global para restringir la creación de objetos pertenecientes a una clase o el valor de un tipo a un único objeto, de forma que garantiza… Read More
  • Patrón RegistryLa idea de este patrón es crear una clase que tenga un array donde guardar los objetos registrados y una serie de métodos: uno que añada los objetos al array, otro que compruebe su existencia para evitar duplicaciones, otro q… Read More
  • Apuntes PDO PHPPDO proporciona una capa de abstracción de acceso a datos, lo que significa que, independientemente de la base de datos que se esté utilizando, se usan las mismas funciones para realizar consultas y obtener datos. Para … Read More