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

JavaScript Discussion :

Meilleur Moyen de récupérer les images d'un site


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Meilleur Moyen de récupérer les images d'un site
    Bonjour !!

    Merci d'avance à ceux qui m'aideront sur le sujet !
    Mon problème pouvait aussi bien se poster ici que sur le fofo PHP alors désolé si je suis pas au bon endroit...

    Ce n'est pas vraiment une question de "code" mais de quel est le meilleur moyen/comment feriez vous pour :

    Nous réalisons un site internet "vitrine" avec pas mal d'images/photos sur les pages du site.
    Notre dernière étape consiste à faire une galerie Photo avec TOUTES les images qui peuvent être présentes sur le site.
    Les images peuvent souvent changer au fil du temps (ajout de nouvelles/suppression d'autres) mais que le total restera toujours autour de 80-100 photos.
    Toutes ces images sont dans un dossier img/ sur le serveur web et pour des facilités, elles ont toutes un nom simple (carousel_1.jpg / page_accueil_1.jpg par exemple).


    D'où ma question : comment feriez-vous pour récupérer TOUTES les images du site ? Ou du moins le chemin des images, afin de stocker les chemins dans un tableau et ensuite créer la galerie par exemple.

    J'ai pensé à plusieurs solutions :
    -- script PHP (ce bout de code fonctionne très bien par exemple) :

    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
    <?php
    /* TEST POUR RECUPERER CHEMINS DES IMAGES*/
     
    $directoty = "img";
     
    function scanDirectories($rootDir, $allData=array()) {
        $invisibleFileNames = array(".", "..", ".htaccess", ".htpasswd");
        $dirContent = scandir($rootDir);
        foreach($dirContent as $key => $content) {
            $path = $rootDir.'/'.$content;
            if(!in_array($content, $invisibleFileNames)) {
                if(is_file($path) && is_readable($path)) {
                    $allData[] = $path;
                }elseif(is_dir($path) && is_readable($path)) {
                    $allData = scanDirectories($path, $allData);
                }
            }
        }
        return $allData;
    }



    -- fichier json/bdd listant tous les chemins des images, que j'alimente à chaque mise à jour (l'horreur quand même..)
    -- script Javascript ??? (je ne sais pas si en JS on peut récup les chemins des fichiers d'un dossier ???)

    -- Si vous avez d'autres soluces pratiques et efficaces, je suis preneur.

    J'ai plusieurs moyens pour créer ma galerie en JS/jQuery.
    Si je fais un script PHP pour récupérer les chemins, je ne sais pas stocker cela dans une variable JS par exemple (je n'ai jamais mélangé du JS et du PHP personnellement..)

    Que feriez-vous dans un tel cas :p ?

    Merci d'avance !
    Désolé du petit pavé & j'espère que c'est clair pour vous :p
    Fuot

  2. #2
    Rédacteur/Modérateur

    un glob sur le répertoire image ...
    une boucle pour générer un array ou directement les balises img ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

    réalisations :www.oxygen-translations.fr|www.saftair.fr| www.ouestisol.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
    Humour

  3. #3
    Membre à l'essai
    En PHP alors ?
    J'étais dans ce sens aussi.

    Et tu ferais la galerie photos en PHP derrière du coup ?

    Merci

  4. #4
    Rédacteur/Modérateur

    Oui la récupération des path d'mages en php.

    Après la galerie tu peux inclure du js ou un plugin jquery ...
    du coup tu passes les infos à js ou jquery avec php à la création de la page en php
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

    réalisations :www.oxygen-translations.fr|www.saftair.fr| www.ouestisol.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
    Humour

  5. #5
    Membre à l'essai
    Ok très bien.
    Tu confirmes ce que je pensais merci !
    (pour infos : le petit bout de code php que j'ai mis plus haut est vraiment top pour lister tous les fichiers d'un dossier et de ses sous-dossiers, je vais le comparer à glob()!! )

    Dernières questions sur le sujet du coup :

    N'est-ce pas un peu "dégueu" d'insérer du JS dans une page php ?
    En général j'aime bien avoir des fichiers distincts (le javascript dans les .js etc.).
    Après si c'est la seule solution..

    N'ayant jamais fait ca (je cherche de mon côté :p) :
    comment je peux récupérer ce tableau php pour l'utiliser côté JS ? S'il vous plait.

    Merci encore !

  6. #6
    Rédacteur/Modérateur

    Il faut comprendre la chronologie des langages ...

    php coté serveur rédige le code html js envoyé au client

    Donc il n'y a rien de crado a demander à php de générer le code js ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

    réalisations :www.oxygen-translations.fr|www.saftair.fr| www.ouestisol.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
    Humour

  7. #7
    Membre à l'essai
    Bon j'ai réussi !

    Donc pour récapituler ma soluce pour ceux qui auront besoin :

    Code PHP pour récupérer toutes les Fichiers d'un dossier et de ses sous-dossiers (des images dans mon cas) :
    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
    <?php
    /* TEST POUR RECUPERER CHEMINS DES IMAGES*/
    function scanDirectories($rootDir, $allData=array()) {
        $invisibleFileNames = array(".", "..", ".htaccess", ".htpasswd");
        $dirContent = scandir($rootDir);
        foreach($dirContent as $key => $content) {
            $path = $rootDir.'/'.$content;
            if(!in_array($content, $invisibleFileNames)) {
                if(is_file($path) && is_readable($path)) {
                    $allData[] = $path;
                }elseif(is_dir($path) && is_readable($path)) {
                    $allData = scanDirectories($path, $allData);
                }
            }
        }
        return $allData;
    }


    Ensuite j'appelle cette fonction et j'utilise json_encode :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
     
    $tab = scanDirectories("img");
    $myTab = json_encode($tab);


    Ensuite côté JS je peux en faire ce que je veux :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <script type="text/javascript">
        var myJsonArray='<?php echo $tab;?>';
        console.log(myJsonArray);
    </script>


    Voilà et ca fonctionne, j'ai un tableau json avec tous les chemins de mes images côté Javascript
    Reste qu'à m'en servir comme je veux.
    Sujet résolu !


    Citation Envoyé par SpaceFrog Voir le message
    Il faut comprendre la chronologie des langages ...

    php coté serveur rédige le code html js envoyé au client

    Donc il n'y a rien de crado a demander à php de générer le code js ...
    ==> I know it , Pardon j'ai mal posé ma question :
    Mettre du JS dans une page PHP, c'est mal ???? => j'avais lu que "tu fais du html dans un .html, du js dans un .js, du php dans un .php"

    Merci encore !
    Fuot

  8. #8
    Expert éminent sénior
    avez-vous vraiment besoin de JavaScript pour afficher les images ? vous pouvez les afficher directement en PHP.

    Citation Envoyé par Fuotmad Voir le message
    Mettre du JS dans une page PHP, c'est mal ???? => j'avais lu que "tu fais du html dans un .html, du js dans un .js, du php dans un .php"
    c'est mieux de séparer dans différents fichiers pour que ça soit plus simple pour vous quand vous avez besoin de faire des modifications.
    cela permet aussi aux navigateurs de mieux gérer le cache de chaque fichier et donc d'accélérer l'affichage de la page.

  9. #9
    Membre à l'essai
    Bonjour,

    OK !
    En effet pas besoin de forcément utiliser JS.
    C'était par habitude de créer des galeries photos en jQuery/JS.

    Je vais donc faire l'affichage en galerie avec du PHP je pense.
    L'autre solution reste possible dans tous les cas.

    Merci de la réponse.

###raw>template_hook.ano_emploi###