IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Récupération automatique des médias


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2020
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2020
    Messages : 7
    Points : 2
    Points
    2
    Par défaut Récupération automatique des médias
    (re)- Bonjour a tous !

    Je suis actuellement en train de me construire un petit site sur apache de facon a pouvoir acceder a mes media depuis l'internet !
    La confection du site ne me pose pas trop de probleme, me prends juste du temps car je suis debutant (:

    J'aurais aimé savoir si il existe un script pour referencer me media automatiquement, je m'explique :

    Sur mon site qui est aussi mon NAS je depose tout mes films, musiques et photos. Comme j'aime bien l'aspect esthetique je me suis fait des pages HTML/CSS. Le souci c'est que j'ai pas le courage de creer 50 href pour 50 film...

    Est - il possible que ca se fasse automatiquement ?

    J'espere avoir etait clair !


    Merci a tous

  2. #2
    Membre averti Avatar de solo190
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Avril 2007
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 412
    Points : 321
    Points
    321
    Par défaut
    hello DidierMasse,
    tu dois déjà ouvrir ton dossier qui contient tes médias et les récupérer dans un tableau en php .
    regarde ce lien il te seras utile .
    https://www.developpez.net/forums/d5...ier-extension/
    Ensuite tu peux former tes liens coté php et retourner à ton IHM ou avec une boucle en JS tu les fera affiché .
    ou tu peux aussi retourner juste le nom et extension des médias dans ton tableau et avec ton js tu reforme les liens et tu es affiche .
    A+

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2020
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2020
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    J'ai trouvé plus ou moins une solution avec ce code que l'on m'a passé :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
      if ($handle = opendir('.')) {
        while (false !== ($file = readdir($handle))) {
          if ($file != "." && $file != "..") {
            $thelist .= '<li><a href="'.$file.'">'.$file.'</a></li>';
          }
        }
        closedir($handle);
      }
    ?>
    <h1>Liste des fichiers:</h1>
    <ul><?php echo $thelist; ?></ul>

    Alors ben ca fonctionne ! Je cherche juste maintenant un moyen de trier par ordre alphabetiques et mon objectif sera atteind (:

  4. #4
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 468
    Points : 5 826
    Points
    5 826
    Billets dans le blog
    1
    Par défaut
    Bonsoir,

    voici un script pour la liste des fichiers triés alphabétiquement :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    <?php
    $thelist=[];
      if ($handle = opendir(__DIR__)) {
        while (false !== ($file = readdir($handle))) {
          if ($file != "." && $file != "..")
          {
              $thelist[] = $file;
          }
        asort($thelist);  // tri alphabétique du tableau
        $listfile="";
          foreach($thelist as $afile)
          {
             $listfile.=' <li><a href="'.$afile.'"</a>'.$afile.'</li>';
          }
        }
        closedir($handle);
     
      }?>
      <h1>Liste des fichiers:</h1>
    <ul><?= $listfile ?></ul>

  5. #5
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 888
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 888
    Points : 6 632
    Points
    6 632
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $listfile.=' <li><a href="'.$afile.'"</a>'.$afile.'</li>';
    Ça serait pas plutôt:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $listfile = '<li><a href="' . $afile . '">' . $afile . '</a></li>';
    asort n'est pas pour alphabetic sort mais pour associative sort car ce tri conserve les index d'origine, ce qui n'est pas utile ici, un simple sort fera l'affaire(*).

    La boucle while doit être fermée avant la commande de tri (et pas après le foreach).

    Sinon l'idée c'est bien ça: on stocke les noms de fichiers dans un tableau, on le trie, puis on fait une deuxième boucle sur le tableau trié pour les afficher.

    (*)Si on souhaite que le tri suive l'interclassement du français (ou d'une autre langue), il faut utiliser SORT_LOCALE_STRING comme deuxième paramètre de sort et s'assurer d'avoir la bonne locale LC_COLLATE="fr_FR.UTF-8" avec setlocale().

  6. #6
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 468
    Points : 5 826
    Points
    5 826
    Billets dans le blog
    1
    Par défaut
    Merci CosmoKnacki. Tu t'y connais visiblement plus que moi. En plus, j'ai fait une erreur bête (position de </a>). Voici le script corrigé. C'est bon ?

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    <?php
    $thelist=[];
      if ($handle = opendir(__DIR__)) {
        while (false !== ($file = readdir($handle)))
          if ($file != "." && $file != "..")
          {
              $thelist[] = $file;
          }
     
        setlocale (LC_COLLATE,"fr_FR.UTF-8");
     
        sort($thelist,SORT_LOCALE_STRING); // tri vraiment alphabétique
     
        $listfile="";
          foreach($thelist as $afile)
          {
             $listfile.=' <li><a href="'.$afile.'">'.$afile.'</a></li>';
          }
     
        closedir($handle);
     
      }?>
      <h1>Liste des fichiers:</h1>
    <ul><?= $listfile ?></ul>

  7. #7
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2020
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2020
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Le code fonctionnait bien quand il etait dans le dossier qu'il devait lire, je viens de le deplacer en ajoutant le chemin et maintenant j'ai un erreur 500.. Et maintenant meme si je le remets dans le dossier film ( sans le chemin ) ca me mets la meme erreur... Peut etre un conflit de droits ? ( Mon dossier NAS est accessible via samba )

    Voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    <!Doctype html>
    <html>
     
    <head>
    		<title>Film</title>
    	<meta charset="utf-8">
    	<link rel="stylesheet" type="text/css" href="css/styles.css">
    </head>
     
     
     
    <body>
     
     <?php
    $thelist=[];
      if ($handle = opendir(/Media/NAS/Film/)) {
        while (false !== ($file = readdir($handle)))
          if ($file != "." && $file != "..")
          {
              $thelist[] = $file;
          }
     
        setlocale (LC_COLLATE,"fr_FR.UTF-8");
     
        sort($thelist,SORT_LOCALE_STRING); // tri vraiment alphabétique
     
        $listfile="";
          foreach($thelist as $afile)
          {
             $listfile.=' <li><a href="'.$afile.'">'.$afile.'</a></li>';
          }
     
        closedir($handle);
     
      }?>
      <h1>Liste des fichiers:</h1>
    <ul><?= $listfile ?></ul>
     
     
     
    </body>
    </html>
    Si je retire le php ca m'affiche bien mon background.

    Le dossier avec les films se trouve bien dans ./Media/NAS/Film/
    Mon film.php ( qui contient le code ci dessus ) se trouve dans ./film.php

  8. #8
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2020
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2020
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Et quand je me sers de celui ci j'ai juste "Listes de Films" affiché mais sans liste....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    <html>
     
     
     
    <head>
    		<title>Film</title>
    	<meta charset="utf-8">
    	<link rel="stylesheet" type="text/css" href="oups/css/styles.css">
    </head>
     
     
     
    <body>
     
    	<?php
      if ($handle = opendir("/Media/NAS/Film/")) {
        while (false !== ($file = readdir($handle))) {
          if ($file != "." && $file != "..") {
            $thelist .= '<li><a href="'.$file.'">'.$file.'</a></li>';
          }
        }
        closedir($handle);
      }
    ?>
    <h1>Liste des Films:</h1>
     
    <ul>
     
        <?php echo $thelist; ?>
     
     
    </ul>
     
    </body>
    </html>

  9. #9
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    il ne faut pas de / à la fin :
    • "/Media/NAS/Film"
    • ou "./Media/NAS/Film"


    De plus, il y avait 2 erreurs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    <?php
    $thelist=[];
    $rep = './Media/NAS/Film';
     
    if ($handle = opendir($rep)) 
    {
    	while (false !== ($file = readdir($handle)))
    	{
    		if ($file != "." && $file != ".." && !is_dir($rep.'/'.$file) ) // on s'assure que c'est bien un fichier, et pas un dossier
    		{
    			$thelist[] = $file;
    		}
    	}
     
    	setlocale (LC_COLLATE,"fr_FR.UTF-8");
     
    	sort($thelist,SORT_LOCALE_STRING); // tri vraiment alphabétique
     
    	$listfile = '';
    	foreach($thelist as $afile)
    	{
    		$listfile.=' <li><a href="'.$rep.'/'.$afile.'">'.$afile.'</a></li>';
    	}
    	$listfile = '<ul>'.$listfile.'</ul>';
     
    	closedir($handle);
    }
    ?>
    <h1>Liste des fichiers:</h1>
    <?= $listfile ?>
    Dernière modification par Invité ; 30/04/2020 à 21h16.

  10. #10
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 468
    Points : 5 826
    Points
    5 826
    Billets dans le blog
    1
    Par défaut
    J'ai modifié le script en lui ajoutant un formulaire qui permet de saisir le répertoire :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    <?php
    if (isset($_POST['selRep']))
    {
        $thelist = [];
        $rep = $_POST['nameRep'];
        if ($handle = opendir($_POST['nameRep']))
        {
            while (false !==
                ($file = readdir($handle)))
            {
                if ($file !=  "." &&   $file !=  ".." &&   !is_dir($rep . '/' . $file)  ) // on s'assure que c'est bien un fichier, et pas un dossier
                {
                    $thelist[] = $file;
                }
            }
     
            setlocale(LC_COLLATE,    "fr_FR.UTF-8");
     
            sort($thelist,   SORT_LOCALE_STRING); // tri vraiment alphabétique
     
            $listfile = '';
            foreach ($thelist as  $afile)
            {
                $listfile .= ' <li><a href="' .  $rep .  '/' .  $afile .  '">' .  $afile .   '</a></li>';
            }
            $listfile = '<ul>' .    $listfile .    '</ul>';
     
            closedir($handle);
        }
    }
    ?>
    <!Doctype html>
    <html>
     
    <head>
        <title>Film</title>
        <meta charset="utf-8">
        <link rel="stylesheet" type="text/css" href="css/styles.css">
    </head>
     
    <body>
    <form action="" method="post" >
        <input type="text" name="nameRep"> <!--nom complet. Par ex. : C:\xampp\htdocs\www\dvp -->
        <input type="submit" name="selRep" value="nom du dossier">
    </form>
    <?php if (isset($listfile))  //affichage que si la variable existe
    { ?>
        <h1>Liste des fichiers:</h1>
    <?php echo $listfile;
    }
    ?>
    </body>
    </html>
    En html, pas moyen de saisir un répertoire, donc l'idée est de saisir son nom dans un champ text. Il faut mettre le chemin complet. Donc le mieux est d'aller dans l'explorateur Windows, de sélectionner le dossier puis de faire un copier (CTRL+C) dans la barre d'adresses, puis de le coller dans le champ de saisie (CTRL+V).

    EDIT : @jreaux62 : J'ai modifié le script pour intégrer ton code (je l'avais pas vu, ayant commencé avant que tu postes). Mais j'ai pas vu où étaient les erreurs. Pour ma gouverne, elles sont où ? Je viens de voir que ligne 38, il manquait $rep. Et l'autre ? L'init. de $listfile ?

Discussions similaires

  1. Récupération automatique des soumissions
    Par degio1er dans le forum Autres
    Réponses: 1
    Dernier message: 28/07/2016, 14h33
  2. Récupération automatique des valeurs
    Par jeeland dans le forum Développement de jobs
    Réponses: 0
    Dernier message: 10/10/2013, 10h44
  3. [PHP 5.2] Récupération "automatique" des $_POST $_GET. C'est bien ou mal ?
    Par greg91 dans le forum Langage
    Réponses: 3
    Dernier message: 20/12/2010, 15h04
  4. Récupération automatique des données d'une feuille de saisie
    Par vieri dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 08/01/2009, 17h21
  5. [AJAX] récupération automatique des liens
    Par 2kerhs dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 24/01/2007, 16h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo