Rechercher une fonction PHP

streamWrapper::dir_readdir

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

streamWrapper::dir_readdirLit un fichier dans un dossier

Description

public streamWrapper::dir_readdir ( void ) : string

Cette méthode est appelée en réponse à readdir().

Retour à la première page de Manuel PHP  Table des matières Haut

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Retour à la première page de Manuel PHP  Table des matières Haut

Valeurs de retour

Doit retourner une chaîne de caractères représentant le prochain nom de fichier, ou FALSE s'i n'y a pas d'autre fichier.

Note:

La valeur retournée sera transtypée en chaîne de caractères.

Retour à la première page de Manuel PHP  Table des matières Haut

Erreurs / Exceptions

Émet une alerte E_WARNING si l'appel à cette méthode échoue (i.e. pas implémenté).

Retour à la première page de Manuel PHP  Table des matières Haut

Exemples

Exemple #1 Liste des fichiers d'une archive tar

<?php
class streamWrapper {
    protected 
$fp;

    public function 
dir_opendir($path$options) {
        
$url parse_url($path);

        
$path $url["host"] . $url["path"];

        if (!
is_readable($path)) {
            
trigger_error("$path n'est pas lisible pour moi"E_USER_NOTICE);
            return 
false;
        }
        if (!
is_file($path)) {
            
trigger_error("$path n'est pas un fichier"E_USER_NOTICE);
            return 
false;
        }

        
$this->fp fopen($path"rb");
        return 
true;
    }

    public function 
dir_readdir() {
        
// Extract the header for this entry
        
$header      fread($this->fp512);
        
$data unpack("a100filename/a8mode/a8uid/a8gid/a12size/a12mtime/a8checksum/a1filetype/a100link/a100linkedfile"$header);

        
// Trim the filename and filesize
        
$filename    trim($data["filename"]);

        
// Pas de fichier, nous sommes à la fin de l'archive
        
if (!$filename) {
            return 
false;
        }

        
$octal_bytes trim($data["size"]);
        
// Filesize is defined in octects
        
$bytes       octdec($octal_bytes);

        
// tar arrondit les tailles de fichiers au multiple de 512 suivant
        
$rest        $bytes 512;
        if (
$rest 0) {
            
$bytes      += 512 $rest;
        }

        
// Lecture du fichier
        
fseek($this->fp$bytesSEEK_CUR);

        return 
$filename;
    }

    public function 
dir_closedir() {
        return 
fclose($this->fp);
    }

    public function 
dir_rewinddir() {
        return 
fseek($this->fp0SEEK_SET);
    }
}

stream_wrapper_register("tar""streamWrapper");
$handle opendir("tar://example.tar");
while (
false !== ($file readdir($handle))) {
    
var_dump($file);
}

echo 
"Remise au début..\n";
rewind($handle);
var_dump(readdir($handle));

closedir($handle);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(13) "construct.xml"
string(16) "dir-closedir.xml"
string(15) "dir-opendir.xml"
string(15) "dir-readdir.xml"
string(17) "dir-rewinddir.xml"
string(9) "mkdir.xml"
string(10) "rename.xml"
string(9) "rmdir.xml"
string(15) "stream-cast.xml"
string(16) "stream-close.xml"
string(14) "stream-eof.xml"
string(16) "stream-flush.xml"
string(15) "stream-lock.xml"
string(15) "stream-open.xml"
string(15) "stream-read.xml"
string(15) "stream-seek.xml"
string(21) "stream-set-option.xml"
string(15) "stream-stat.xml"
string(15) "stream-tell.xml"
string(16) "stream-write.xml"
string(10) "unlink.xml"
string(12) "url-stat.xml"
Remise à zéro..
string(13) "construct.xml"

Rechercher une fonction PHP

Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-streamwrapper.dir-readdir.html

L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.

Références

  1. Consulter le document html Langue du document :fr Manuel PHP : http://php.net

Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.

Table des matières Haut