PHP tiene muchas funciones relacionadas con el sistema de archivos, que no sólo le ayudan a abrir archivos, sino también a mostrar el contenido del directorio, mover archivos, etc. Mucha gente incluso ha escrito administradores de archivos basados en web utilizando PHP.
En primer lugar, debo recordarle algo sobre la ruta del archivo: en Windows puede usar la barra diagonal "/" o la barra invertida "\" en la ruta del archivo, mientras que otros sistemas operativos solo usan "/". Por motivos de compatibilidad, los siguientes ejemplos utilizan la representación "/":
El siguiente script simple muestra una lista de directorios básica. Los comentarios están en el código y explican cada paso:
<? /* Proporciona la ruta completa al directorio al que deseas acceder en la variable $dir_name*/
$
dir_name = /home/me/;
del directorio dado* /
$dir = opendir(
$dir_name
)
;
Declaración while para leer todos los elementos del directorio abierto. Si el nombre del archivo no es "." ni "..", entonces genere el nombre del archivo en la lista */
while ($file_name = readdir($dir)) {
if (($nombre_archivo!= .) && ($nombre_archivo!= ..)) {
$lista_archivo .= <li>$nombre_archivo;
}
}
/* Finaliza la lista*/
$file_list .= </ul>;
/
* Cierra el identificador del directorio abierto y finaliza el segmento de código PHP*/
closedir
($dir);
<HTML >
<CABEZA>
<TÍTULO>Listado de directorios</TÍTULO>
</CABEZA>
<CUERPO>
<!-- Utilice PHP para imprimir el nombre del directorio que lee -->
<P>Archivos en: <? echo $dir_name ?></p>
<!-- Utilice PHP para imprimir el listado del directorio -->
<? eco $lista_archivo ?>
</CUERPO>
</HTML>
En este momento, ya existe una lista de directorio. Debe recordar que para leer el contenido de un directorio o archivo (lo verá pronto), la plataforma de ejecución PHP donde se encuentra el usuario debe tener al menos permiso de lectura en el directorio o archivo.
El siguiente ejemplo muestra cómo copiar archivos:
<? /* Coloque la ruta del archivo a copiar en la variable $original y la ruta de destino a copiar en la variable $copied */
$original = /home/me/ mydatabasedump;
$copied = /archive/mydatabasedumo_1010;
/* Utilice la función copy() para copiar el archivo de origen al destino, o finalice mostrando un mensaje de error*/
@copy($original, $copied) o die(No se pudo copiar file.);
?>
El script de muestra es el primer paso para realizar una copia de seguridad del sistema. Cuando se ejecuta el script, primero copia la base de datos en una ubicación diferente por razones de seguridad. Al modificar el crontab, puede ejecutar este archivo en un momento seleccionado sin intervención del usuario.
Suponiendo que Lynx ya está en el sistema, puede crear una entrada crontab para ejecutar Lynx y acceder a los archivos. Al acceder al archivo, se ejecutará el script y se creará una copia del archivo. El siguiente ejemplo ejecutará el script a las 5 de la mañana y luego cerrará Lynx:
0 5 * * * [nombre de usuario] lynx -dump http://localhost/copyfile.php 1>/dev/null 2>&1
Si está ejecutando la versión PHP CGI, puede omitir la parte Lynx y consultar los binarios:
0 5 * * * [nombre de usuario] php /path/to/copyfile.php 1>/dev/null 2>&1