Comment utiliser les fonctions de fichier et de répertoire php pour HTML5 et CSS3 programmation

Parfois, vous devrez peut-être PHP de travailler avec des fichiers dans un répertoire pour HTML5 et CSS3 programmation. Disons que vous avez un outil de reporting pour un client. Chaque semaine, vous générer un nouveau rapport pour le client et le placer dans un répertoire.

Sommaire

Vous ne voulez pas avoir à modifier la page chaque fois que vous faites cela, si la place, faire une page qui génère automatiquement une liste de tous les fichiers de rapport pour le client à sélectionner. Ceci est le genre de chose que vous pouvez faire avec des fonctions comme opendir () et readdir ().

opendir ()

En utilisant le opendir () fonction, vous pouvez créer une variable (techniquement parlant, ce type de variable est appelé manipuler) Qui vous permet de travailler avec un répertoire particulier.

La opendir () fonction prend un paramètre: le chemin vers le répertoire que vous voulez travailler avec. La opendir () fonction retourne une poignée de répertoire (comme une sorte de connexion à l'annuaire) sur la réussite et Faux en cas d'échec.

Voici un exemple de la opendir () fonction. Cette fonction stocke une poignée de répertoire pour le C: xampp htdocs XFD xfd5.7 dans le répertoire $ directoryHandle variables:

$ directoryHandle = opendir ("C: xampp htdocs XFD xfd5.7") -

readdir ()

Après vous ouvrez le répertoire avec le opendir () fonction, vous avez un curseur pointé sur le premier fichier. À ce stade, vous pouvez lire les noms de fichiers un par un avec un tandis que boucle. Pour ce faire, utilisez le readdir () fonction.

La readdir () fonction prend un paramètre: la variable contenant la poignée de répertoire créé avec le opendir () fonction. La readdir () fonction renvoie le nom d'un fichier en cours axé sur le curseur sur le succès et d'échec.

Voici un exemple de la readdir () fonction. Cette fonction parcourt chaque fichier dans le répertoire spécifié par $ dp et attribue le nom du fichier en cours à un nouvel indice dans $ fileArray tableau:

while ($ currentFile == false!) {$ currentFile = readdir ($ dp) - $ filesArray [] = $ currentFile-}

L'actuel readdir () fonction elle-même est readdir ($ dp). Pour en savoir plus sur la fonction, voir la documentation officielle de PHP en ligne à http://us.php.net/function.readdir.

Dans certaines circonstances, la readdir () pourrait renvoyer des valeurs non-booléennes qui évaluent à Faux, comme 0 ou “ ”. Lors du test de la valeur de retour de la readdir () fonction, l'utilisation === ou !==, au lieu de ==ou !==, pour répondre à ces cas particuliers.

chdir ()

Si vous voulez créer un fichier dans un répertoire autre que le répertoire que la page de la création du fichier PHP est, vous avez besoin de changer de répertoire. Vous changez de répertoire en PHP avec le chdir () fonction.

Si vous voulez être absolument sûr que vous êtes dans le bon répertoire avant d'écrire le fichier, vous pouvez utiliser un si déclaration auprès de la getcwd () fonction. Cela est généralement un peu exagéré, mais il peut être utile.




La chdir () fonction prend un paramètre: le chemin vers le répertoire que vous voulez travailler avec. La chdir () retour de la fonction Vrai en cas de succès et Faux en cas d'échec.

Voici un exemple de la chdir (). Cette fonction change la C: xampp htdocs XFD xfd5.6 répertoire:

chdir ("C: xampp htdocs XFD xfd5.6") -

Lorsque vous passez à un répertoire, vous êtes alors libre d'écrire à elle avec la fonction.

Comment générer la liste des liens de fichiers

En utilisant le opendir () et readdir () fonctions, vous pouvez générer une liste de liens vers les fichiers dans un répertoire.

Jetez un oeil sur le code PHP pour l'exemple de la liste de liens de fichiers:

fileList.php
    ? lt; php $ dp = opendir (".") - $ currentFile = "" -Pendant (! $ currentFile == false) {$ currentFile = readdir ($ dp) - $ filesArray [] = $ currentFile-} // fin tandis // trier le tableau en alpha ordersort ($ filesArray) - ". -foreach ($ filesArray que $ aFile) {$ output =" // écrire la sortie sortie $ = "
  • $ aFile
  • n "-} // foreachprint fin" $ sortie "->

Voici comment le programme fileList.php effectue sa magie:

  1. Ouvrez un pointeur de répertoire pour le répertoire courant.

    Dans tous les principaux systèmes d'exploitation, la période (.) Caractère indique le répertoire courant.

    $ dp = opendir (".") -
  2. Construire une boucle qui se répète jusqu'à ce qu'il n'y a pas de fichiers laissés.

    La spéciale !==la comparaison est utilisé pour prévenir les problèmes rares, tels que les fichiers nommés faux. (Oui, croyez-le ou pas, ce qui arrive parfois.)

    image0.jpg
    while ($ currentFile! == false) {
  3. Lire le fichier suivant à partir du pointeur de répertoire.

    La readdir () fonction lit le fichier suivant dans les magasins et à une variable ($ currentFile).

     $ currentFile = readdir ($ dp) -
  4. Ajoutez le fichier actuel à un tableau.

    Si vous affectez simplement un fichier à un tableau sans indice, PHP place l'élément dans le prochain espace disponible.

     $ filesArray [] = $ currentFile-
  5. Trier le tableau.

    Les fichiers ne seront pas dans un ordre particulier dans le tableau, donc utiliser le Trier() fonction.

    Trier ($ filesArray) -
  6. Imprimer chaque élément de la matrice.

    Vous pouvez utiliser une liste non ordonnée de liens pour afficher chaque fichier. Faites un lien afin que l'utilisateur peut cliquer sur le fichier pour l'afficher directement.

    foreach ($ filesArray que $ aFile) {$ output. = "
  7. $ aFile
  8. n "-} // fin foreach

Sur un serveur Windows, vous avez pour échapper à la contre-obliques dans le chemin du fichier. Vous faites cela en ajoutant une barre oblique inverse avant les contre-obliques dans le chemin du fichier. (Par exemple, vous pouvez écrire C: xampp htdocs XFD xfd5.7 au lieu de C: xampp htdocs XFD xfd5.7 .) Sur un serveur Unix, vous ne devez pas le faire parce que les chemins de fichiers utilisent des barres obliques (/) Au lieu de barres obliques inversées ().

Si vous voulez juste un type de fichier particulier, vous pouvez utiliser des expressions régulières pour filtrer les fichiers. Si vous aviez voulu seulement le .SMS et .dat les fichiers du répertoire, vous pourriez avoir exécuter l'ensemble du fichier à travers ce filtre pour éliminer les types de fichiers non désirés:

$ filesArray = preg_grep ("/ txt $ | dat $ /", $ filesArray) -

» » » » Comment utiliser les fonctions de fichier et de répertoire php pour HTML5 et CSS3 programmation