Visualizzazione dei risultati da 1 a 10 su 10

Discussione: readdir

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929

    readdir

    ciao a tutti,

    leggo i dati in una cartella, ma come faccio a sapere quanti file sono presenti?

    codice:
    <?php
    if ($handle = opendir('../slider')) {
       echo "&tot=$totale&foto=";
       while (false !== ($file = readdir($handle))) { 
           echo "$file";
       }
    
       closedir($handle); 
    }
    ?>
    e poi posso eliminare i puntini iniziali?

    adesso esce cosi
    codice:
    &tot=&foto=.|..|01.jpg|02.jpg|
    grazie mille

  2. #2
    prima di echo $file metti semplicemente

    if ($file == '.' || $file == '..')
    {
    continue;
    }


    )
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929
    perfetto, ma per sapere quanti file sono presenti nella cartella??

    Grazie

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929
    ho fatto cosi
    codice:
    <?php
    if ($handle = opendir('../slider')) {
    	
    	$nf=0;
    	while (false !== ($file = readdir($handle))) {
    		if($file!='.' AND $file!='..' AND !is_dir($pathToDir.$file)){
    			 $nf++;
    			echo "&tot=$nf&foto=$file|";
    		}
    		
    	}
    }
    ?>
    però viene fuori questo
    codice:
    &tot=1&foto=01.jpg|&tot=2&foto=02.jpg|
    mentre dovrebbe venire cosi
    codice:
    &tot=2&foto=01.jpg|02.jpg|
    :master:

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929
    ok grazie mille ho risolto

  6. #6
    Utente bannato
    Registrato dal
    Sep 2005
    Messaggi
    905
    prova a fare un array con while e poi usi count() per contare gli elementi dell'array.

  7. #7
    non serve usare count se già deve fare il ciclo ^^

    cosi va bene, alla fin fine è la stessa cosa

    al max ... gli conviene usare glob ed implode oltre a count ... e risparmia parecchio codice ^^
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  8. #8
    Utente bannato
    Registrato dal
    Sep 2005
    Messaggi
    905
    non credo proprio guarda:
    se si fa così
    codice:
    <?php
    $handle = opendir('../slider');
    while(false !== $file = readdir($handle)) {
      if($file != '.' && $file != '..' && $file != 'Thumbs.db') {
        $array[] = $file; //attenzione! non bisogna definire già da prima che la variabile $array sia un array con array()
      }
    }
    if(!isset($array)) {
      $files = 0;
    }else{
      $files = count($array);
    }
    ?>
    e la variabile $files assumerà il totale numero dei files nella directory.

  9. #9
    ma hai letto la mia risposta?

    mi devi spiegare cosa cambia da:
    $files = count($array);

    a

    $files++

    dentro il ciclo

    cmq se proprio vuole fare breve

    codice:
    $files = glob('../slider');
    echo "&tot=" . ((int)@count($files)) . '&foto=' . @implode('|', $files);
    e ha finito
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  10. #10
    Utente bannato
    Registrato dal
    Sep 2005
    Messaggi
    905
    si giusto

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.