Visualizzazione risultati 1 fino 5 di 5

Discussione: [PHP] Contare file cartella o contare elementi array e "printare" SOLO il totale

  1. #1
    Guest

    Predefinito [PHP] Contare file cartella o contare elementi array e "printare" SOLO il totale

    Il titolo dice tutto.

    Ho cercato in internet e su php.net ma non ho trovatu nulla che mi interessa.

    Tutte le funzioni stampano, per esempio se ho 4 file, 1234, se ne ho 5 stampano 12345 e così via.

    Vorrei stampare solo l'ultimo numero, quindi il totale degli elementi che formano gli array.

    Chiedo come si fa perchè definisco un array con tutti i file così:

    Codice PHP:
    if ($dir_handle = @opendir($dir_open . $dir) or die(message_die(GENERAL_MESSAGE, '<h1>' . $lang['Error'] . '</h1>' . '<br /><br />' . $lang['Not_Open_Dir'] . ' <b>' . $dir_open . $dir . '</b><br /><br />' . $lang['Select_Size'] . '<br />' . $select_size))) {
    while (
    false !== ($file = readdir($dir_handle))) {
    if (
    $file != "." && $file != "..") {
    $num_files[] = $file;
    print_r(count($num_files));
    }
    closedir($dir_handle);
    }
    Se avete altri consigli per contare e stampare il numero totale dei file dite pure ragazzi

  2. #2
    Guest

    Predefinito

    Con glob ;)

    Codice PHP:
    Via perversa, eliminata.
    Utilizzava una variabile come contatore e glob + foreach per sommare ad ogni file 1.
    E poi puoi ingegnarti tu su quello che vuoi fare :)

    Edit: guarda il consiglio di dread, io sono ancora assonnato! (il risultato è lo stesso, solo che lui è leggermente più "sveglio" :P)
    Ultima modifica di comunitavirtuali : 30-12-2008 alle ore 13.11.24

  3. #3
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    Oppure utilizzando il tuo codice puoi sfruttare strlen() che ti restituisce la lunghezza della riga (quella 12345...) e substr() per prendere solo una parte del testo:
    Codice PHP:
    if ($dir_handle = @opendir($dir_open . $dir) or die(message_die(GENERAL_MESSAGE, '<h1>' . $lang['Error'] . '</h1>' . '<br /><br />' . $lang['Not_Open_Dir'] . ' <b>' . $dir_open . $dir . '</b><br /><br />' . $lang['Select_Size'] . '<br />' . $select_size))) {
    while (
    false !== ($file = readdir($dir_handle))) {
    if (
    $file != "." && $file != "..") {
    $num_files[] = $file;
    $tmp1 = count($num_files));
    $tmp2 = strlen($tmp1);
    $uno = "1";
    $tmp3 = $tmp2-$uno;
    $conta = substr($tmp1,"$tmp3","1");
    echo
    $conta;
    }
    closedir($dir_handle);
    }
    Cosa fa questo codice? Conta quanti numeri contiene la variabile $num_files, sottrae al totale -1 e infine preleva solo l'ultima cifra del totale (nel tuo caso 5).
    Apprezzi l'aiuto? Offrimi un caffè!

  4. #4
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    ma state dando di matto questa mattina, avete dimenticato tutto il php in una notte, o non avete neanche letto il codice?!

    basta spostare la chiamata a print in giù di una riga...
    Codice PHP:
    if ($dir_handle = @opendir($dir_open . $dir) or die(message_die(GENERAL_MESSAGE, '<h1>' . $lang['Error'] . '</h1>' . '<br /><br />' . $lang['Not_Open_Dir'] . ' <b>' . $dir_open . $dir . '</b><br /><br />' . $lang['Select_Size'] . '<br />' . $select_size))) {
    while (
    false !== ($file = readdir($dir_handle))) {
    if (
    $file != "." && $file != "..")
    $num_files[] = $file;
    }
    print_r(count($num_files));
    closedir($dir_handle);
    }
    (occhio che il conto delle parentesi graffe non tornava nel codice iniziale)

    ovvio poi che con glob() si semplifica la situazione, ma anche li vedo vie perverse nei suggerimenti sopra

    Codice PHP:
    $totale = count( glob('*') );
    Ultima modifica di dreadnaut : 30-12-2008 alle ore 12.58.29

  5. #5
    Guest

    Predefinito

    Ho seguito il consiglio dreadnaut perchè dovevo mettere fuori dal ciclo IF la variabile, perchè poi dovevo crearne un altro in base alla quantità del risultato e generare altre variabili.


    Anche ora ho risolto. Grazie mille ragazzi

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •