Lister les fichiers d'un sous-répértoire PHP

Résolu
Yazou92 Messages postés 181 Date d'inscription   Statut Membre Dernière intervention   -  
 Utilisateur anonyme -
Bonjour,

Je fait actuellement un petit site qui permet de scanner un dossier et de lister tout les fichiers video.

Ce que je n'arrive pas a faire c'est de scanner les sous-dossier de mon dossier racine et d'ajouter ces fichiers à ma base de donnée, car mon code me permet d'ajouter que les films dans le dossier racine.

Voila mon Code: si quelqu'un à une solution merci d'avance les gars ^^


<?php
include_once 'function.inc.php';
$dsn = "mysql:host=localhost;dbname=dvix";
$user = "root";
$password = "";

try {
    $db = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
    die("Erreur !:" . $e->getMessage());
}

$prepareStatement = $db->query("SELECT n_file FROM t_film ");
$connect = $prepareStatement->fetchAll();
$rep = "F:\DVD";
$dir = opendir($rep);

while ($file = readdir($dir)) {
    
    if (($file != ".") && ($file != "..")) {
        $info = pathinfo($file);
        $found = false;
        foreach ($connect as $value) {
            
            if ($value['n_file'] == $file) {
                $found = true;
                break;
            }
        }
        if ($found == false) {
            $statement = "INSERT INTO t_film 
            (n_file,n_title,n_synopsis,n_ctg,n_date)
            VALUES ('$file','".$info['filename']."','','".$info['extension']."',' ')";
            $db->exec($statement);
        }
    }
}

header('Location: index.php');
?>




A voir également:

1 réponse

Utilisateur anonyme
 
Bonjour,

Il va falloir se la jouer récursif pour bien faire :

function scan($rep) {
global $db;
$dir = opendir($rep);
while ($file = readdir($dir)) {
    
    if (($file != ".") && ($file != "..")) {
        if (is_dir($rep.$file))  { 
        scan($file);
        } else {
        $info = pathinfo($file);
        $found = false;
        foreach ($connect as $value) {
            
            if ($value['n_file'] == $file) {
                $found = true;
                break;
            }
        }
        if ($found == false) {
            $statement = "INSERT INTO t_film 
            (n_file,n_title,n_synopsis,n_ctg,n_date)
            VALUES ('$file','".$info['filename']."','','".$info['extension']."',' ')";
            $db->exec($statement);
        }
    }
    }
}
}
scan("F:\DVD");


Pas testé, mais c'est l'idée.
0
Yazou92 Messages postés 181 Date d'inscription   Statut Membre Dernière intervention   16
 
Merci, ça marche bien ^^


Bonne journée
0
Utilisateur anonyme
 
Super, bonne continuation
0