Posts Tagged ‘archivos’

Crear y escribir en un archivo txt con php

By Luigi Keynes

A veces es útil por diferentes razones crear y manipular archivos de texto mediante un script php. A continuación les mostraré lo simple que es hacer esto usando sólo unas pocas funciones de php.

php-logo

En primer lugar les muestro el código a utilizar, para luego explicarlo.

<?php
$contenido=”lo que quieras escribir en el archivo”;
$fp=fopen(“carpeta/archivo.txt”,”x”);
fwrite($fp,$contenido);
fclose($fp) ;
?>

En la variable “$contenido” asignamos como valor lo que queremos que se escriba en el archivo.

Luego definimos la variable “$fp” que será nuestro handle donde usamos la función fopen() donde el primer argumento introducimos la ubicación y el nombre del archivo (recordemos que para esto la carpeta en cuestión debe tener los permisos correctos que permitan al script crear el archivo), mientras que en el segundo argumento introducimos el modo, en este caso es “x” porque queremos crear y escribir en el archivo.

Despues usamos la función fwrite(), donde en el primer argumento establecemos la variables handle previamente definida y en segundo lugar la variable “$contenido” con lo que queremos que se escriba en el archivo.

Finalmente con la función fclose() cerramos el handle.

[PHP]

Comparte:
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • BarraPunto
  • Bitacoras.com
  • LinkedIn
  • Meneame
  • MySpace
  • Twitter
  • Yahoo! Bookmarks
  • email
  • Live
  • RSS
  • Technorati

Eliminando muchos archivos en un directorio en Linux

By Luigi Keynes

Necesitaba depurar un directorio donde se cachean archivos de uno de mis sitios. La cantidad de archivos era muy grande, al menos mas de un millón.

Traté de utilizar el comando rm a secas:

# rm /directorio_de_caches/*

Pero me apareció el siguiente mensaje:

bash: /usr/bin/rm: The parameter or environment lists are too long

Este mensaje significa que mensaje anterior indica que el kernel de Linux tiene una cantidad fija de memoria disponible para el ambiente de ejecución del programa y la lista de argumentos, la cual no es suficiente para realizar la operación solicitada. En este caso significa que la lista de los nombres de los archivos a eliminar (no el tamaño de todos los archivos) es mas grande que la memoria buffer disponible del sistema operativo.

Para solucionar esto, una posibilidad es eliminar el directorio completo.

# rm /directorio_de_caches/

Pero en mi caso esto no es viable, ya que este directorio es fundamental para el funcionamiento normal del sitio, y eliminar el directorio y su contenido llevaría algunas horas.

La solución que encontré es eliminar los archivos uno a uno, sería un proceso lento, pero mejor desde el punto de vista de no saturar el servidor o generar caídas en el sitio en cuestión.

Para ello utilizo el siguiente comando:

# for i in ls /directorio_de_caches/*; do rm -v $i -f; done

Y como en mi caso quiero eliminar solo los archivos .jpg, el comando querdaría así:

 #for i in ls /directorio_de_caches/*.jpg; do rm -v $i -f; done

Comparte:
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • BarraPunto
  • Bitacoras.com
  • LinkedIn
  • Meneame
  • MySpace
  • Twitter
  • Yahoo! Bookmarks
  • email
  • Live
  • RSS
  • Technorati