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 :

[Dates] Affichage des images d'un dossier - avec date


Sujet :

Langage PHP

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 8
    Points : 1
    Points
    1
    Par défaut [Dates] Affichage des images d'un dossier - avec date
    Bonjour,

    Tout nouveau sur le forum, j'espere ne pas me tromper de catégorie, le cas échéant, merci de déplacer le sujet ou me rediriger ou il faut.

    En bref, ca faisait un moment que j'avais pas refait de php, donc j'explique ce que je veux faire directement, j'ai fait déjà des recherches mais je n'ai pas trouvé ce que je cherche.

    J'ai une webcam qui me génère des images dans un dossier ftp/http, une par demi-heure ou par heure selon mon choix, sur 24 heures.

    Je voudrais pouvoir afficher ces images en php/http dans, accessoirement, un tableau, sur 2 colonnes en taille d'origine, ou 3 ou 4 en taille réduite.

    Beaucoup de scripts permettent de le faire mais sont souvent (c'est rare de le dire) trop évolués pour ce que je cherche, un "simple" bout de code php et certains ne mettent pas la date d'upload mais la date EXIF.

    Je cherche en effet à avoir sous la photo, la date et l'heure d'upload qu'on retrouve dans le dossier a coté de chaque image (triées plus récente en premier accessoirement, photos nommées photo1 à photo24, en boucle).

    En théorie pas besoin de filtrer le contenu puisque j'ai mis les images dans un dossier /camera/images/ et l'index dans /camera/ mais les tests que j'ai déjà fait avec des scripts adaptés me posent des erreurs de dossier (listing de tout le site ou du mauvais dossier) ou de colonnes, j'ai plus l'impression de reculer que d'avancer.

    Sachant que certains peuvent "pondre" un script de ce genre comme je change un processeur, je viens faire appel à leur savoir s'ils peuvent me filer un coup de pouce.

    ps : je sais pas si ca change quelque chose, mais hebergé chez Free, sans base sql activée.

    merci par avance

  2. #2
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut
    Bonjour et bienvenue

    Pour construire une mini galerie dynamique, tu peux te baser sur ce tuto :

    http://pbnaigeon.developpez.com/tuto...rie-dynamique/

    ou une version plus avancée avec un système de templates :

    http://pbnaigeon.developpez.com/tuto...avec-template/

    Pour récupérer la dernière date de modification d'un fichier, tu peux utiliser filemtime

    Je pense qu'en mixant les deux, tu devrai pouvoir t'en sortir très facilement
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Merci, je vais prendre le temps de consulter ces liens, par contre j'ai déjà utilisé le filemtime et il réagissait comme s'il récuperait dans le mauvais dossier, une sorte de conflit avec le readdir

    Je vais déjà voir ca

    edit : punaise j'accroche pas là .... et pour coupler le filemtime c'est pas beaucoup plus aisé, faudra que je prenne le temps de me concentrer dessus, mais meme si le lien permet des choses, ca résoud par encore mon problème
    Faudrait que je trouve un job dans un bureau moi

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Bon, sans avoir rien fait, premier problème, le script du début de met pas à jour les miniatures, et donc ca le fait pas puisque en vrai ca change frequemment d'image mais pas de nom .....

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 211
    Points : 196
    Points
    196
    Par défaut
    Citation Envoyé par Axtrane
    Bonjour,

    Tout nouveau sur le forum, j'espere ne pas me tromper de catégorie, le cas échéant, merci de déplacer le sujet ou me rediriger ou il faut.

    En bref, ca faisait un moment que j'avais pas refait de php, donc j'explique ce que je veux faire directement, j'ai fait déjà des recherches mais je n'ai pas trouvé ce que je cherche.

    J'ai une webcam qui me génère des images dans un dossier ftp/http, une par demi-heure ou par heure selon mon choix, sur 24 heures.

    Je voudrais pouvoir afficher ces images en php/http dans, accessoirement, un tableau, sur 2 colonnes en taille d'origine, ou 3 ou 4 en taille réduite.

    Beaucoup de scripts permettent de le faire mais sont souvent (c'est rare de le dire) trop évolués pour ce que je cherche, un "simple" bout de code php et certains ne mettent pas la date d'upload mais la date EXIF.

    Je cherche en effet à avoir sous la photo, la date et l'heure d'upload qu'on retrouve dans le dossier a coté de chaque image (triées plus récente en premier accessoirement, photos nommées photo1 à photo24, en boucle).

    En théorie pas besoin de filtrer le contenu puisque j'ai mis les images dans un dossier /camera/images/ et l'index dans /camera/ mais les tests que j'ai déjà fait avec des scripts adaptés me posent des erreurs de dossier (listing de tout le site ou du mauvais dossier) ou de colonnes, j'ai plus l'impression de reculer que d'avancer.

    Sachant que certains peuvent "pondre" un script de ce genre comme je change un processeur, je viens faire appel à leur savoir s'ils peuvent me filer un coup de pouce.

    ps : je sais pas si ca change quelque chose, mais hebergé chez Free, sans base sql activée.

    merci par avance
    Bon, ca depend si t'as PHP 4 ou 5 pour quand tu scannes ton dossier.
    Ensuite tu recuperes les infos image (taille, modification), et tu affiches dans un tableau, c'est ca?

    Finalement, je l'ai fait pour les deux cas (j'ai ecrit ma premiere phrase y'a 30 mins!):

    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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
     
    <table>
    <?php
    $file_ok = array('.jpg','jpeg');
    $nb_cols = 2;
    // PHP5
    $i = 1;
    if ( substr(PHP_VERSION,0,1) == 5 )
    	{
    		$files = scandir('.');
    		foreach ( $files as $file ) 
    			{
    				if ( in_array(substr(strtolower($file),-4),$file_ok) ) 
    					{
    						$size = getimagesize($file);
    						if ( $i == 1 )
    							{ echo "<tr>\n"; }
    						echo "<td align=\"center\">";
    						echo "<img src=\"".$file."\" width=\"".$size[0]."\" height=\"".$size[1]."\" alt=\"Ajout&eacute; le : " . date ("j/n/y H:i", filemtime($file))."\" /><br />\n";
    						echo "Ajout&eacute; le : " . date ("j/n/y H:i", filemtime($file));
    						echo "</td>\n";
    						if ( $i == $nb_cols )
    							{
    								echo "</tr>\n"; 
    								$i = 0;
    							}
    						$i++;
    					}
    			}
    	}
    // PHP4
    else
    	{
    		$files = dir('.');
    		chdir($files->path);
    		while($file = $files->read()) 
    			{
    				if ( in_array(substr(strtolower($file),-3),$file_ok) ) 
    					{
    						$size = getimagesize($file);
    						if ( $i == 1 )
    							{ echo "<tr>\n"; }
    						echo "<td align=\"center\">";
    						echo "<img src=\"".$file."\" width=\"".$size[0]."\" height=\"".$size[1]."\" alt=\"Ajout&eacute; le : " . date ("j/n/y H:i", filemtime($file))."\" /><br />\n";
    						echo "Ajout&eacute; le : " . date ("j/n/y H:i", filemtime($file));
    						echo "</td>\n";
    						if ( $i == $nb_cols )
    							{
    								echo "</tr>\n"; 
    								$i = 0;
    							}
    						$i++;
    					}
    			}
    	}
    if ( $i == $nb_cols )
    	{ echo "<td>&nbsp;</td>\n</tr>\n"; }
    ?>
    </table>
    Je te laisse faire ta regle de 3 tout seul si tu veux retailler les images. T'as les parametres des types de fichier scanne ($file_ok) et le nombre de colonnes du tableau ($nb_cols). Utilise l'une ou l'autre partie du code selon ta version de PHP. La, ca devrait marcher sur les deux, mais j'ai pas teste sur PHP4.

  6. #6
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Merci beaucoup pour le moment ca n'affiche rien qu'une page blanche,sans message d'erreur, mais je n'ai pas eu le temps d'approfondir et dès que j'ai le temps (sans doute cette aprem) je tenterais d'adapter comme il faut.


  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 211
    Points : 196
    Points
    196
    Par défaut
    Dans sa config actuelle, le fichier doit etre mis dans le repertoire des images, et tes images doivent etre de type JPG. Mais tu peux facilement le changer...

  8. #8
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    en fait j'ai vérifié, avec fichier dans le dossier images, ou avec modification du chemin, ca n'affiche pas, mais en m'acharnant sur rafraichir, de temps en temps ca marche ...... je cherche d'ou ca vient, avec les scripts séparés, et je cherche aussi la version de Free, apparement ca serait php4 ...

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 211
    Points : 196
    Points
    196
    Par défaut
    Ca marche de temps en temps??? Etrange...
    Combien d'images as-tu dans ton dossier? Peut-etre est-ce le max_execution_time de PHP. Dans ce cas, il faudrait limiter le nombre d'images scannees.

  10. #10
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    dans le dossier officiel, j'ai 24 images, toutes en 640*480, mais pour les tests je passe sur seulement 3 ou 4 ....
    j'ai testé sur mon serveur web pour verifier que ca ne vienne pas de free, et le résultat est le même quand la page est vide, le code source l'est aussi ...

  11. #11
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut
    pour mon tuto de galerie dynamique, si tu veux que les miniatures soient regénérées à chaque fois, il te suffit de remplacer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (!file_exists($chemin_miniature)) {
    						genere_miniature($dir, $chemin_fichier, $chemin_miniature);
    					}
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    genere_miniature($dir, $chemin_fichier, $chemin_miniature);
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  12. #12
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Merci Titoumimi, je garde sous le coude pour tester, je n'ai pas encore réussi a adapter filemtime dedans et je teste l'autre, sinon pour info je tournais sur ca :

    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
    <?php
      $PATH = '.';// Listage d'un répertoire $PATH
      if ($dir = @opendir($PATH)) {// ouverture du dossier 
         while($file = readdir($dir)) { // lecture d'une entrée 
            //création d'un tableau à 2 colonnes : nom + date fichiers 
            $tab[] = array($file, filemtime($file));  
            // sauvegarde du nom du fichier et de sa date 
        }
        closedir($dir); // fermeture du dossier 
    }
    //tri du tableau sur les dates
    function cmp($a,$b) {
        if ($a[1] == $b[1])
            return 0;
        return ($a[1] < $b[1]) ? -1 : 1;
    }
     
    usort($tab, "cmp");
    ?>
    <?php
    // $nbcol=2;
    echo "<table width='100%' border='1'>";
    foreach($tab as $elem) {
        //formatage de la date avec mktime() selon le format retourné par filemtime()
        echo "<tr><td><div align='center'><img src=".$elem[0]." alt=''></div><br><center>".date("d-m-Y H:i:s",$elem[1])."</center></td></tr>"; 
    }
    echo "</table>";
    ?>
    Mais il me récupere l'integralité du dossier, y compris les . et .. et sous dossiers, ce qui se corrige en filtrant avec les codes qui vont bien, mais sur une seule colonne....

    En plus je galere, je me suis arraché l'index hier soir, alors pour le code c'est vraiment pas top....

  13. #13
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Petite mise à jour :
    Le script V5 fonctionne partiellement, 4 fois sur 5, j'ai le message suivant :

    Fatal error: Call to undefined function: scandir() in /mnt/139/free.fr/b/b/
    et les images apparaissent dans un ordre bizarre (que 2 pour le test) mais c'est secondaire evidemment.

    Le script V4+V5 fonctionne aussi aleatoirement, affiche correctement les 2 photos a la fin mais avant j'ai droit a ca :
    Warning: getimagesize() [function.getimagesize]: Unable to access image-1.jpg in /mnt/139/free.fr/b/b/xxxxxx/index4.php on line 22

    Warning: getimagesize(image.jpg) [function.getimagesize]: failed to open stream: No such file or directory in /mnt/139/free.fr/b/b/
    et autant de fois que j'avais d'images a l'origine dans le dossier ....

    suivi autant de fois par ca :

    Warning: filemtime() [function.filemtime]: stat failed for image-1.jpg in /mnt/139/free.fr/b/b/xxxxxx/index4.php on line 26
    bref je fouille...... je galere surtout


    edit :

    Dans le script complet V4+V5, la fonction de lecture du repertoire lirait elle les sous dossiers ? si oui alors les fonctions de recuperation de taille et de date, elles, ne récupere que le dossier courant, et ce serait la cause de l'erreur.

    Le script seul de la V5 semble faire un retour a la ligne apres la photo mais pas après la date, et affiche sur une seule colonne....

    edit 2 :

    en laissant le directory sur "." et sans sous dossier, ca marche bien pour le script complet, MAIS, ca n'affiche toujours rien aléatoirement, si quelqu'un a une idée du pourquoi du comment ............

    De plus, dans le code qui suit, si quelqu'un sait me dire comment faire des images plus petites (genre 320*240 accessoirement cliquables) je l'en remercie grandement.

    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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    <table>
    <?php
    $file_ok = array('.jpg','jpeg');
    $nb_cols = 2;
    // PHP5
    $i = 1;
    if ( substr(PHP_VERSION,0,1) == 5 )
    	{
    		$files = scandir('.');
    		foreach ( $files as $file ) 
    			{
    				if ( in_array(substr(strtolower($file),-4),$file_ok) ) 
    					{
    						$size = getimagesize($file);
    						if ( $i == 1 )
    							{ echo "<tr>\n"; }
    						echo "<td align=\"center\">";
    						echo "<img src=\"".$file."\" width=\"".$size[0]."\" height=\"".$size[1]."\" alt=\"Ajout&eacute; le : " . date ("j/n/y H:i", filemtime($file))."\" /><br />\n";
    						echo "Ajout&eacute; le : " . date ("j/n/y H:i", filemtime($file));
    						echo "</td>\n";
    						if ( $i == $nb_cols )
    							{
    								echo "</tr>\n"; 
    								$i = 0;
    							}
    						$i++;
    					}
    			}
    	}
    // PHP4
    else
    	{
    		$files = dir('.');
    		chdir($files->path);
    		while($file = $files->read()) 
    			{
    				if ( in_array(substr(strtolower($file),-3),$file_ok) ) 
    					{
    						$size = getimagesize($file);
    						if ( $i == 1 )
    							{ echo "<tr>\n"; }
    						echo "<td align=\"center\">";
    						echo "<img src=\"".$file."\" width=\"".$size[0]."\" height=\"".$size[1]."\" alt=\"Ajout&eacute; le : " . date ("j/n/y H:i", filemtime($file))."\" /><br />\n";
    						echo "Ajout&eacute; le : " . date ("j/n/y H:i", filemtime($file));
    						echo "</td>\n";
    						if ( $i == $nb_cols )
    							{
    								echo "</tr>\n"; 
    								$i = 0;
    							}
    						$i++;
    					}
    			}
    	}
    if ( $i == $nb_cols )
    	{ echo "<td>&nbsp;</td>\n</tr>\n"; }
    ?>
    </table>
    edit 3 : Le script (il y est pour rien) liste les images dans l'ordre suivant : 1, 10, 11, [...], 19, 2, 20, 21, 22, 23, 24, ca se contourne ? pas sur de pouvoir générer les images en 01, 02 ......

Discussions similaires

  1. Afficher des images d'un dossier avec chmod 700
    Par Coach_nono dans le forum Langage
    Réponses: 1
    Dernier message: 18/01/2011, 00h06
  2. [AC-2002] Affichage des images dans un dossier
    Par Jean-Luc80 dans le forum VBA Access
    Réponses: 0
    Dernier message: 16/05/2009, 07h00
  3. probleme avec l'affichage des images dans une jsp
    Par hypothese dans le forum Servlets/JSP
    Réponses: 12
    Dernier message: 27/05/2008, 16h56
  4. [MySQL] Affichage des images avec PHP
    Par dasou dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 06/02/2007, 19h44

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