Files

Helper con funciones auxiliares para tratamiento de archivos.

read_file()

Lee un archivo y devuelve un string con el contenido del mismo, éste detecta los saltos de línea, pero si tratamos de imprimir con echo evidentemente no saldrán puesto que son caracteres de escape '\n', si luego plasmamos su contenido en otro archivo se colocarán correctamente los saltos de línea. Recibe un único parámetro, la ruta del archivo.

# No necesariamente debe ser .txt, puede ser CUALQUIER formato de archivo
$contenido = Files::read_file('ruta/archivo.txt');

write_file()

Escribe sobre un archivo, sobrescribiendo todo su contenido si este existe y empezando a escribir desde cero, si el archivo no existe lo crea. Recibe un solo parámetro y es la ruta del archivo a escribir.

# No necesariamente debe ser .txt, puede ser CUALQUIER formato de archivo
$bytes_escritos = Files::write_file('ruta/archivo.txt');

Luego de escribir un archivo, podemos saber cuánta información en bytes es lo que ha sido escrito en ese archivo, ésta función devuelve un entero con dicha información siempre.

get_file_ext()

Obtiene la extensión de un archivo, sin importar cual sea esta. Si el archivo no tiene extensión, devuelve un string vacío. Recibe un único parámetro, el nombre del archivo o la ruta del mismo incluyendo al archivo.

$extension = Files::get_file_ext('ruta/archivo.pdf');
# Entonces
$extension === 'pdf'

# O simplemente pasando el nombre del archivo sin la ruta.
$extension = Files::get_file_ext('archivo.doc');
# Entonces
$extension === 'doc'

file_size()

Devuelve el tamaño en Kb de un fichero, recibe como parámetro la ruta del fichero.

$tamanio = Files::file_size('./mifichero.png');
# Entonces
$tamanio === 103 # Suponiendo que pesa 103 Kb

date_file()

Devuelve la fecha y hora exacta de creación de un archivo, recibe como parámetro la ruta del fichero.

$tamanio = Files::date_file('./mifichero.png');
# Entonces
$tamanio === '01-01-1996 09:10:11' # Suponiendo que en esa fecha fue creado

is_image()

Devuelve true si un archivo es una imagen y false si no lo es, solo recibe un parámetro y es el nombre/ruta de la imagen, la función considera como imagen sólo a los formatos jpg - png - gif - jpeg

$resultado = Files::is_image('imagen.jpg');
# Entonces
$resultado === true

# Si queremos podemos utilizarlo en un formulario
$resultado = Files::is_image($_FILES['archivo']['name']);
# Si es imagen lo que se está cargando por el formulario devuelve true, si no, false
$resultado === true xor false

get_files_in_dir()

Obtiene todos los archivos existentes en un directorio en un arreglo secuencial. Recibe como único parámetro la ruta del directorio.

$arreglo = Files::get_files_in_dir('views/');

Si no hay archivos o el directorio no existe, devuelve un arreglo vacío.

rm_dir()

Borra de forma recursiva un directorio completo incluyendo todos los archivos existentes en el sin piedad. Lanza un \RuntimeException si por alguna razón no se puede borrar el directorio o un archivo dentro del directorio.

Files::rm_dir('directorio/a/borrar/');

create_dir()

Crea un directorio con permisos 0777 en la ruta indicada.

Recibe como primer parámetro la ruta a crear.

Recibe como segundo parámetro un integer con los permisos asociados, por defecto es 0777

Devuelve un valor booleando, siendo true si se creó con éxito o false si ya existe el directorio o existió algún problema en la creación.

if(Files::create_dir('./mi/directorio/')) {
echo 'Directorio creado correctamente';
} else {
echo 'Algo pasó';
}

images_in_dir()

Devuelve la cantidad de imágenes en un directorio (jpg,gif,png,jpeg)

Recibe como único parámetro el directorio a evaluar.

Files::images_in_dir('views/app/images/');

move_from_dir()

Mueve todos los archivos de un directorio a otro.

Recibe como primer parámetro la ruta desde donde se moverán los archivos.

Recibe como segundo parámetro la ruta hacia donde se moverán los archivo.

Recibe como tercer parámetro un boolean que por defecto es false, y al declararse true sólamente pasará imágenes.

Recibe como cuarto parámetro un boolean que por defecto es false, y al declararse true borrará todos los archivos del directorio viejo.

Files::move_from_dir('views/app/old','views/app/new',false,true);

upload_file()

Carga un fichero desde una ruta temporal (con $_FILES)

Recibe como primer parámetro el nombre que se le quiere dar al archivo (Ej: $_FILES['nombre']['name'] ó imagen.jpg)

Recibe como segundo parámetro Directorio temporal ($_FILES['nombre']['tmp_name'])

Recibe como tercer parámetro Directorio a subir

Recibe como cuarto parámetro un boolean que por defecto es false, si se pasa true sobrescribe archivos con el mismo nombre, si no, copia el archivo de conflicto con un nombre aleatorio para no sobrescribir nada.

Files::upload_file($_FILES['nombre']['name'],$_FILES['nombre']['tmp_name'],'views/app/files',true);