PHP possède de nombreuses fonctions liées au système de fichiers, qui vous aident non seulement à ouvrir des fichiers, mais également à afficher le contenu des répertoires, à déplacer des fichiers, etc. De nombreuses personnes ont même écrit des gestionnaires de fichiers Web en utilisant PHP.
Tout d'abord, je dois vous rappeler quelque chose à propos du chemin du fichier : sous Windows, vous pouvez utiliser une barre oblique "/" ou une barre oblique inverse "\" dans le chemin du fichier, tandis que d'autres systèmes d'exploitation n'utilisent que "/". Pour des raisons de compatibilité, les exemples suivants utilisent la représentation « / » :
Le script simple suivant affiche une liste de répertoires de base. Les commentaires sont dans le code et expliquent chaque étape :
<? /* Donnez le chemin complet du répertoire auquel vous souhaitez accéder dans la variable $dir_name*/
$dir_name = /home/me/
/* Créez un handle et ouvrez le résultat. du répertoire donné* /
$dir = opendir($dir_name);
/* Commencez à ajouter un morceau de texte à l'endroit où l'élément de liste (nom de fichier) sera placé */
$file_list = <ul>
/* Utilisez le instruction while pour lire tous les éléments du répertoire ouvert. Si le nom du fichier n'est ni "." ni "..", affichez le nom du fichier dans la liste */
while ($file_name = readdir($dir)) {
if ($file_name != .) && ($file_name != ..)) {
$file_list .= <li>$file_name;
}
}
/* Finalisez la liste*/
$file_list .= </ul>;
/* Fermez le handle du répertoire ouvert et terminez le segment de code PHP*/
closeir($dir);
?>
<!-- Démarrez votre HTML -->
<HTML >
<TÊTE>
<TITRE>Liste des répertoires</TITRE>
</TÊTE>
<CORPS>
<!-- Utilisez PHP pour imprimer le nom du répertoire que vous lisez -->
<P>Fichiers dans : <? echo $dir_name ?></p>
<!-- Utilisez PHP pour imprimer la liste des répertoires -->
<? echo $file_list; ?>
</CORPS>
</HTML>
À l'heure actuelle, il existe déjà une liste de répertoires. Vous devez vous rappeler que pour lire le contenu d'un répertoire ou d'un fichier (vous le verrez bientôt), la plate-forme PHP en cours d'exécution sur laquelle se trouve l'utilisateur doit avoir au moins l'autorisation de lecture sur le répertoire ou le fichier.
L'exemple suivant montre comment copier des fichiers :
<? /* Mettez le chemin du fichier à copier dans la variable $original et le chemin cible à copier dans la variable $copied */
$original = /home/me/ mon dump basé sur les données ;
$copied = /archive/mydatabasedumo_1010;
/* Utilisez la fonction copy() pour copier le fichier source vers la destination, ou terminez par afficher un message d'erreur*/
@copy($original, $copied) ou die(Impossible de copier ?
>
L'exemple de script constitue la première étape de la sauvegarde du système. Lorsque le script s'exécute, il copie d'abord la base de données vers un emplacement différent pour des raisons de sécurité. En modifiant la crontab, vous pouvez exécuter ce fichier à un moment choisi sans intervention de l'utilisateur.
En supposant que Lynx soit déjà sur le système, vous pouvez créer une entrée crontab pour exécuter Lynx et accéder aux fichiers. L'accès au fichier exécutera le script et créera une copie du fichier. L'exemple suivant exécutera le script à 5 heures du matin, puis arrêtera Lynx :
0 5 * * * [nom d'utilisateur] lynx -dump http://localhost/copyfile.php 1>/dev/null 2>&1
si vous utilisez la version PHP CGI, vous pouvez ignorer la partie Lynx et vous référer aux binaires :
0 5 * * * [username] php /path/to/copyfile.php 1>/dev/null 2>&1