martes, 12 de agosto de 2014

Los archivos en PHP - 3 de 3



  • La función is_excutable() permite probar si se puede ejecutar el archivo. Toma como parámetro una cadena de caracteres que contiene el nombre del archivo.

Por ejemplo:

<?php
$archivo = ’archivo.txt’;
if(file_exists($archivo)){
echo "Este archivo es ejecutable.";
}
else {
echo "Este archivo no es ejecutable.";
}
?>

Da como resultado en el archivo de texto:

Este archivo no es ejecutable.

  • La función touch() permite crear un archivo. Esta función toma como parámetro una cadena de caracteres que contiene el nombre del archivo. Si ya existe el archivo, solo cambia la fecha de su última modificación.

Por ejemplo:

<?php
touch("archivo.txt");
?>

crea el archivo "archivo.txt" si no existe.

  • La función unlink() permite eliminar un archivo. Esta función toma como parámetro una cadena de caracteres que contiene el nombre del archivo. Es importante que compruebe si el archivo existe antes de eliminarlo; de lo contrario, PHP generará un error.

Por ejemplo:

<?php
if(file_exists("archivo.txt")){
unlink("archivo.txt");
}
?>

elimina el archivo "archivo.txt" si existe.

  • La función rename() permite volver a nombrar un archivo. Esta función toma como parámetro una cadena de caracteres que contiene el antiguo nombre del archivo y otra cadena de caracteres que contiene su nuevo nombre. Es importante que compruebe si el archivo existe antes de volver a nombrarlo; de lo contrario, PHP generará un error.

Por ejemplo:

<?php
if(file_exists("archivo.txt")){
rename("archivo.txt","nuevo_archivo.txt");
}
?>

vuelve a nombrar el archivo "archivo.txt" en "nuevo_archivo.txt" si existe.

  • La función filesize() devuelve el tamaño del archivo. Esta función toma como parámetro una cadena de caracteres que contiene el nombre del archivo.

Por ejemplo:

<?php
echo filesize("archivo.txt");
?>

Da como resultado:

23


8. Manipulación de directorios

Esta parte utiliza conceptos de POO (Programación Orientada Objetos). En el capítulo El objeto se explican los requisitos para entender las sintaxis.

  • La función dir() devuelve una instancia de la clase Directory. Es decir, esta función va a poner el cursor en un directorio lo que permitirá que a continuación pueda leerse ese directorio. Esta función toma como parámetro una cadena de caracteres que contiene la ruta del directorio.

Por ejemplo, si quiere leer los archivos contenidos en el directorio C:\Program Files\EasyPHP-DevServer-13.1VC11\data\localweb:

<?php
$directory = dir("/Program Files/EasyPHP-DevServer-13.1VC11\data\localweb");
echo "Cursor: " . $directory->handle . "<br />";
echo "Ruta: " . $directory->path . "<br />";
while ($entry = $directory->read()) {
echo $entry . "<br />";
}
$directory->close();
?>

Da como resultado:

Cursor: Recurso id #3
Ruta: /Program Files/EasyPHP-DevServer-13.1VC11\data\localweb
.
..
archivo.txt
prueba.php

La función dir() crea un objeto $directory que contiene las propiedades handle y path, que tienen como valor la ruta de la carpeta. En el próximo capítulo veremos las nociones de objeto y propiedad. Por ahora, recuerde que existe el método read(), que permite leer los archivos de un directorio.

  • La función is_dir() devuelve true si el directorio existe y false si no. Esta función toma como parámetro una cadena de caracteres que contiene el nombre del directorio.

Por ejemplo:

<?php
if (is_dir("/Program Files/EasyPHP-DevServer-13.1VC11\data\localweb")) {
echo "La carpeta existe.";
}
else {
echo "La carpeta no existe.";
}
?>

Da como resultado:

La carpeta existe.

  • La función opendir() permite abrir un directorio. Esta función toma como parámetro una cadena de caracteres que contiene el nombre del directorio. Devuelve un cursor a su directorio. Esta función se asocia con readdir(), que permite leer todos los archivos y los subdirectorios de un directorio.

Por ejemplo:

<?php
if ($cursor = opendir(’.’)) { //apertura del directorio actual
//(C:\Program Files\EasyPHP-DevServer-13.1VC11\data\localweb)
while ($archivo = readdir($cursor)) { //mientras exista
//un archivo en el directorio
if ($archivo != "." && $archivo != "..") {
No mostrar los directorios . y .. de Windows
echo "$archivo <br />";
}
}
closedir($cursor);
}
?>

Da como resultado:

archivo.txt
prueba.php

Es decir el contenido del directorio C:\Program Files\EasyPHP-DevServer-13.1VC11\data\localweb) sin las carpetas . y .. propias de Windows.

  • La función filetype() devuelve el tipo de contenido de un directorio, es decir, un archivo o un subdirectorio. Esta función toma como parámetro una cadena de caracteres que contiene el nombre del directorio o del archivo.

Por ejemplo, si en nuestro directorio localweb tenemos los dos archivos prueba.php y archivo.txt y un subdirectorio llamado imagen:

<?php
if ($cursor = opendir(’.’)) { //apertura del directorio actual
//(C:\Program Files\EasyPHP-DevServer-13.1VC11\data\localweb
while ($archivo = readdir($cursor)) { //mientras exista
//un archivo en el directorio
if ($archivo != "." && $archivo != "..") {
No mostrar los directorios . y .. de Windows
echo $archivo." de tipo ".filetype($archivo)."<br />";
}
}
closedir($cursor);
}
?>

Da como resultado:

archivo.txt de tipo file
imagen de tipo dir
prueba.php de tipo file

  • La función glob() devuelve una tabla que contiene todos los archivos de un directorio respetando la máscara. Esta función toma como parámetro una cadena de caracteres que contiene la máscara de los archivos que hay que devolver.

Por ejemplo, si en nuestro directorio localweb tenemos los dos archivos prueba.php y archivo.txt y un subdirectorio llamado imagen:

<?php
$archivo = glob(’./*.txt’);
print_r($archivo);
?>

Da como resultado:

Array ( [0] => ./archivo.txt)

La máscara ./*.txt son todos los archivos de texto del directorio actual.

Si quiere buscar todos los archivos .jpg del directorio imagen que se encuentra en el directorio actual, es decir localweb, escriba el siguiente código:

<?php
$archivo = glob(’./imagen/*.jpg’);
print_r($archivo);
?>

A diferencia de Windows, la función glob distingue entre mayúsculas y minúsculas; por tanto, si tiene archivos con una extensión JPG, el código anterior no los encontrará.

  • La función getcwd() devuelve el directorio actual.
  • La función chdir() permite desplazarse en un directorio.

Por ejemplo, si en el directorio localweb hay dos archivos prueba.php y archivo.txt y un subdirectorio llamado imagen:

<?php
echo getcwd()."<br />";
chdir(’imagen’);
echo getcwd();
?>

Da como resultado:

C:\Program Files\EasyPHP-DevServer-13.1VC11\data\localweb
C:\Program Files\EasyPHP-DevServer-13.1VC11\data\localweb\imagen

  • La función mkdir() permite crear un directorio.

Por ejemplo, si quiere crear un directorio css en nuestro directorio localweb:

<?php
echo getcwd()."<br />";
mkdir(’css’); //creación del directorio css
chdir(’css’); //desplazamiento por el directorio css
echo getcwd();
?>

Da como resultado:

C:\Program Files\EasyPHP-DevServer-13.1VC11\data\localweb
C:\Program Files\EasyPHP-DevServer-13.1VC11\data\localweb\css

  • La función rmdir() permite eliminar un directorio.

Por ejemplo, si quiere eliminar el directorio css en el directorio localweb:

<?php
echo getcwd()."<br />";
rmdir(’css’); //Eliminación del directorio css
echo "Eliminación realizada.";
?>

Da como resultado:

C:\Program Files\EasyPHP-DevServer-13.1VC11\data\localweb\
Eliminación realizada.

  • La función dirname() devuelve la ruta matriz del nombre del directorio, una cadena de caracteres que se ha pasado como parámetro.

Por ejemplo:

<?php
$ruta = "/EasyPHP-DevServer-13.1VC11/data/localweb/imagen";
$directorio = dirname($ruta);
echo $directorio;
?>

Da como resultado:

/EasyPHP-DevServer-13.1VC11\data\localweb

  • La función pathinfo() devuelve la ruta del nombre del directorio, una cadena de caracteres que se ha pasado como parámetro.

Por ejemplo:

<?php
$tabla_info = pathinfo("/EasyPHP-DevServer-13.1VC11/data/localweb");
echo $tabla_info["dirname"]; //ruta
echo $tabla_info["basename"]; //directorio
echo $tabla_info["filename"]; //archivo
?

Da como resultado:

/EasyPHP-DevServer-13.1VC11/data
localweb
localweb



Espero haber ayudado en algo. Hasta la próxima oportunidad!








No hay comentarios:

Publicar un comentario en la entrada