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 :

Lister les images d'un répertoire et les renommer [Débutant(e)]


Sujet :

Langage PHP

  1. #1
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Points : 314
    Points
    314
    Par défaut Lister les images d'un répertoire et les renommer
    bonjour,

    j'ai trouvé ce script pour lister les fichiers d'un repertoire
    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
    <?php
    // Création du tableau qui va contenir les fichiers et dossiers
    $files = array();
     
    // Ouverture du répetoire courant
    // Pour le changer utiliser chdir() avant opendir()
    $handle = opendir(".");
     
    // Parcours des fichiers et dossiers du répertoire courant
    while($file = readdir($handle)) {
        if($file != "." && $file != "..") {
            $files[] = $file;
        }
    }
     
    // Fermeture du répertoire courant
    closedir($handle);
     
    // Tri du tableaunat
    sort($files);
     
    // Affichage des fichiers et dossiers triés
    foreach($files as $v) {
        echo $v . "<br />";
    }
    ?>
    => est-ce la meilleure methode pour lister les fichiers et repertoire d'un dossier ?

    je voudrais aussi lister juste les fichiers .jpg : quelle est la meilleur methode ?

    Le nom de mes fichiers se presente sous cette forme XXX_0001.JPG (XXX étant une chaine de caractère variable et 0001 pouvant etre un nombre entre 0001 et 9999) => comment faire pour renomer les fichiers sous cette forme XXX_TOTO_0001.JPG ?

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 181
    Points : 189
    Points
    189
    Par défaut
    bonjour,

    j'ai utilisé le même script, il marche nickel et est très bien fait

    pour tes autres questions est ce que substr() ne convient pas ?
    va voir
    (pour renommer, tu n'as qu'à couper XXX et _0001.jpg et reconcaténer avec _TOTO au milieu

    (si tu as des problèmes pour trouver la solution, demande)

  3. #3
    Membre éprouvé
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juin 2003
    Messages
    909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 909
    Points : 1 014
    Points
    1 014
    Par défaut vive les fonctions PHP
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    explode("_", $nom_fichier);

  4. #4
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Points : 314
    Points
    314
    Par défaut
    ok merci pour vos infos

  5. #5
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Points : 314
    Points
    314
    Par défaut
    j'ai un autre problème : je liste les fichiers images de plusieurs repertoire puis je les redimensionne => le problème est que j'ai le message d'erreur suivant :
    fatal error: Maximum execution time of 30 seconds exceeded
    => a priori ça vient que le serveur n'aime pas qu'un fichier php mettre trop de temps à s'executer : y a t-il un moyen pour le feinter ?

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 181
    Points : 189
    Points
    189
    Par défaut
    c'est un temps d'execution de script limité à 30 par défaut dans php.ini
    si tu peux changer php.ini fais le sinon au début de ta page ajoute
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set_time_limit ( nombre que tu veux >30, 1000 par exemple );

  7. #7
    Membre éprouvé
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juin 2003
    Messages
    909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 909
    Points : 1 014
    Points
    1 014
    Par défaut c'est vraiment déconseillé
    Au contraire, si tu peux le changer dans le php.ini, mets le au plus bas possible. C'est également une question de sécurité de mettre la valeur au minimum.

    En local, je l'ai descendu à 5 secondes.

  8. #8
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Points : 314
    Points
    314
    Par défaut
    ok, merci pour vos reponses

  9. #9
    Membre régulier Avatar de kazylax
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    278
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 278
    Points : 121
    Points
    121
    Par défaut
    Tout simplement

    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
    <?
     
    Function ScanFile($rep){
     if (!($url=opendir($rep))) return true;
     while($dir = readdir($url)) {
      if ($dir == "." || $dir == "..") continue;
      if(!($fichier = file($rep.$dir))) continue;
      /* Propriété du fichier */
      $file_size=filesize("$rep$dir");
      $file_size=round($file_size / 1000) . " Ko";
    echo "Image Uploader: <a href='$dir' target='_blank'><font color='#669999'>Aperçu</font></a> <br>Taille: <font color='#669999'>$file_size</font><br><br>";
     }
     closedir($url);
    }
    // chemin du dossier a scaner
    ScanFile("./img");
     
    ?>
    Cordialement,

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 07/06/2013, 16h07
  2. Lister les images d'un répertoire sous Linux
    Par NLS le pingouin dans le forum C++
    Réponses: 2
    Dernier message: 10/04/2011, 11h55
  3. lister les fichiers d'un répertoire et les ouvrir
    Par thong36 dans le forum Langage
    Réponses: 1
    Dernier message: 18/10/2006, 10h43
  4. Afficher les images d'un répertoire
    Par cyrill.gremaud dans le forum ASP
    Réponses: 17
    Dernier message: 09/02/2006, 12h53
  5. Afficher les images d'un répertoire
    Par jim1 dans le forum Langage
    Réponses: 6
    Dernier message: 31/01/2006, 08h00

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