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 :

Sélectionner l'avant dernier fichier dans un dossier


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 134
    Par défaut Sélectionner l'avant dernier fichier dans un dossier
    Bonjour,

    Je souhaite récupérer le nom de l'avant dernier fichier dans un dossier.

    Voilà ce que ça donne pour récupérer le dernier.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    		$destination = 'photos/'.$pseudo.'/';
    		if(is_dir($destination)){
    			$liste = end(scandir($destination));
    			echo $liste;
    		}
    Merci et bonne soirée.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $liste= scandir($destination);
    $nombre_fichiers = count($liste);
    $position =  $nombre_fichiers > 1 ? $nombre_fichiers - 2 : 0;
    $fichier = $liste[$position]
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 134
    Par défaut
    Merci,

    Cependant, j'ai deux erreurs retournés :

    Notice: Use of undefined constant position - assumed 'position' in F:\Wamp\www\Projet\ajouter_image.php on line 90

    Notice: Undefined index: position in F:\Wamp\www\Projet\ajouter_image.php on line 90

    $fichier = $liste[position];

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    J'ai un $ qui s'était perdu.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 134
    Par défaut
    Tu veux dire pour le $count ?

    Je l'ai enlevé au préalable quand je l'ai vu.

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Ah oui aussi
    Je parlais de la derniere ligne, j'ai corrigé sur mon message.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 134
    Par défaut
    Merci, ça marche bien.

    Cependant tu pourrais m'expliquer un peu cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $position =  $nombre_fichiers > 1 ? $nombre_fichiers - 2 : 0;
    C'est la première fois que je vois ça :p

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    C'est l'operateur ternaire :
    condition ? resultat si vrai : resultat si faux
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 134
    Par défaut
    Plop,

    Je relance un peu le sujet.

    J'ai réaliser il y a peu de temps un script, avec l'aide de sabotage, permettant au moment d'enregistrer des images dans un répertoire avec un nom sous cette forme : "photo_1". Le chiffre prend la valeur supérieur si ce dernier est déjà pris.

    Voilà ce que ça donne :


    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
    <?php					if(!is_dir('photos/')){
    					mkdir('photos', 0777);
    					}
    					if(!is_dir('photos/'.$pseudo)){
    					mkdir('photos/'.$pseudo, 0777);
    					}
     
    					$destination = 'photos/'.$pseudo.'/';
     
    					$liste= scandir($destination);
    					$nombre_fichiers = count($liste);
    					$position =  $nombre_fichiers > 1 ? $nombre_fichiers - 2 : 0;
    					$fichier = $liste[$position];			
     
    					if($fichier != '..'){
    						$intermediaire = explode('.',$fichier);
    						$dernier_numero = explode('_',$intermediaire[0]);
    						$numero = $dernier_numero[1] + 1;
    						$nom = 'photo_'.$numero;
    					}
    					else{
    						$nom = 'photo_1';
    					}?>
    Le script fonctionne bien.
    Cependant, aujourd'hui, j'ai uploadé encore quelques images en plus. qu'à partir de la 10eme image, les images ne s'appellent plus photo_11 etc... Mais remplace systématiquement les photo nommé photo_10. :s

    J'ai uploadé 10 fois le fond d'écran Windows. Puis la 11eme fois, un autres screen.
    Le dernier uploadé reprend le nom de photo_10. :/

    On dirait que PHP ne sait pas compter au delà de 10

    Merci.

  10. #10
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Je dirais comme ca que ton photo_10 est classée entre photo_1 et photo_2 puisque le tri est alphabétique ; donc ta dernière image est toujours photo_9.

    tu pourrais ajouter des zeros :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $numero  = sprintf("%03d",$dernier_numero[1] + 1;
    );
    bon le problème se posera à 9999 photos mais tu as le temps de voir je suppose.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 134
    Par défaut
    Pas bête du tout.

    Merci ça fonctionne !

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

Discussions similaires

  1. Créer un fichier dans un dossier
    Par naevaj dans le forum C
    Réponses: 12
    Dernier message: 26/05/2006, 15h27
  2. [VBA-E]Compter nombre de fichier dans un dossier
    Par Elstak dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 22/05/2006, 15h36
  3. [Upload] upload de fichier dans un dossier creer en ligne
    Par jeanfrancois dans le forum Langage
    Réponses: 1
    Dernier message: 20/03/2006, 15h09
  4. Réponses: 7
    Dernier message: 05/01/2006, 02h06
  5. Pb de comptage de fichiers dans un dossier
    Par oz80 dans le forum Access
    Réponses: 2
    Dernier message: 15/11/2005, 15h26

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