Visualizzazione risultati 1 fino 30 di 30

Discussione: [php] elencare nome file

  1. #1
    Guest

    Predefinito [php] elencare nome file

    Ciao a tutti

    ho una super domandona...

    io ho bisogno di una pagina php (anche vuota) che mi elenchi i nome dei file che contiene una determinata cartella sul server... come posso fare?

  2. #2
    Guest

    Predefinito

    Elencare File Cartella Php

    Si perde più tempo a postare e attendere risposta che a cercare

  3. #3
    L'avatar di Xsescott
    Xsescott non è connesso AlterGuru
    Data registrazione
    08-02-2004
    Messaggi
    1,413

    Predefinito

    "Quando il potere dell'amore supererà l'amore per il potere il mondo conoscerà la pace" Jimmy Hendrix


    [ Richiesta: http://www.unibologna.eu/ ] --> [Risposta: http://www.magazine.unibo.it/Magazin...al_Portale.htm Morale] -->[ http://www.anti-phishing.it/news/art...s.13062007.php ]
    consoliwebsite.altervista.org

  4. #4
    Guest

    Predefinito

    se l'ho scritto è xke non riesco a inserirli in pagine php cmq ok mi affido a google.

    grazie

  5. #5
    L'avatar di Xsescott
    Xsescott non è connesso AlterGuru
    Data registrazione
    08-02-2004
    Messaggi
    1,413

    Predefinito

    Citazione Originalmente inviato da linuxmx Visualizza messaggio
    se l'ho scritto è xke non riesco a inserirli in pagine php cmq ok mi affido a google.

    grazie

    Codice PHP:
    <?php
    // @visualizzazione: metti 0 se vuoi il contenuto solo di una cartella, metti 1 se vuoi navigare
    $visualizzazione = 0;
    // @nome_cartella: il nome della cartella di cui vuoi stampare il contenuto
    $nome_cartella = 'test';

    //--------------------------
    // @nome_account: il nick del tuo account
    $nome_account = "xsescott";

    //inizio controllo visualizzazione
    if($visualizzazione == 1){
    $nome_cartella = $_GET['dir'];
    if(!isset(
    $nome_cartella)){$nome_cartella='./';} //se non esiste passo la root
    }

    $od=opendir('/membri/'.$nome_account."/".$nome_cartella);

    while(
    false!==($rd=readdir($od))){

    if(
    $rd != '.' && $rd != '..'){ //elimino . e ..
    if(is_dir('/membri/'.$nome_account."/".$nome_cartella."/".$rd)){
    $cartelle[]=$rd;
    //carico l'array delle directory
    }
    if(
    is_file('/membri/'.$nome_account."/".$nome_cartella."/".$rd)){
    $file[]=$rd;
    //carico l'array dei file
    }
    }
    }

    closedir($od);

    if(
    $visualizzazione == 1)
    echo
    "Torna alla root: <a href=\"?dir=./\">Torna Indietro</a><br>";

    $numerocartelle = count($cartelle); //conto le cartelle
    echo "<br><br>"
    ."CARTELLE:".$numerocartelle."<br>";

    if(
    $numerocartelle > 0){
    //stampo le cartelle
    for($i=0;$i<$numerocartelle;$i++) {
    if(
    $visualizzazione == 1)
    echo
    1+$i.") <a href=\"?dir=".$cartelle[$i]."\">".$cartelle[$i]."</a><br>";
    else
    echo
    1+$i.")".$cartelle[$i]."<br>";
    }
    }
    //conto files
    $numerofile = count($file);
    echo
    "<br><br>"
    ."FILE:".$numerofile."<br>";

    if(
    $numerofile > 0){
    for(
    $i=0;$i<$numerofile;$i++){ echo 1+$i.")".$file[$i]."<br>";}
    }



    ?>
    azz, da quanto tempo non scrivevo qualcosa in php
    Ultima modifica di Xsescott : 15-02-2009 alle ore 04.21.32
    "Quando il potere dell'amore supererà l'amore per il potere il mondo conoscerà la pace" Jimmy Hendrix


    [ Richiesta: http://www.unibologna.eu/ ] --> [Risposta: http://www.magazine.unibo.it/Magazin...al_Portale.htm Morale] -->[ http://www.anti-phishing.it/news/art...s.13062007.php ]
    consoliwebsite.altervista.org

  6. #6
    Guest

    Unhappy

    quindi, se a me interessa il contenuto di

    http://linuxmx.altervista.org/pippo/
    devo modificare cosi? perche non mi va

    Codice PHP:
    // @visualizzazione: metti 0 se vuoi il contenuto solo di una cartella, metti 1 se vuoi navigare
    $visualizzazione = 0;
    // @nome_cartella: il nome della cartella di cui vuoi stampare il contenuto
    $nome_cartella = 'http://linuxmx.altervista.org/black/';

    //--------------------------
    // @nome_account: il nick del tuo account
    $nome_account = "xsescott";

    su nome account devo mettere linuxmx nel mio caso?

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

    Predefinito

    Citazione Originalmente inviato da Xsescott Visualizza messaggio
    azz, da quanto tempo non scrivevo qualcosa in php
    già, nel frattempo è uscita glob()

  8. #8
    Guest

    Predefinito

    Citazione Originalmente inviato da dreadnaut Visualizza messaggio
    già, nel frattempo è uscita glob()
    acutissima osservazione con questo va:

    Codice PHP:
    <?php
    foreach (glob("*.*") as $filename) {
    echo
    "$filename" . "\n";
    }
    ?>
    Mi stampa i nomi cosi:

    Codice:
    1.php 2.php tux.jpg
    1) è possibile fare in modo che stampi cosi?
    Codice:
    1.php 
    2.php 
    tux.jpg
    2) è possibile aggiungere in automatico il link a tale file?

  9. #9
    Guest

    Predefinito

    Codice PHP:
    <?php
    foreach (glob("*.*") as $filename) {
    print
    '<a href="$filename">' . $filename . '<br />';
    }
    ?>
    Altrimenti li puoi pure contare:

    Codice PHP:
    print '<ol>';
    foreach (
    glob("*.*") as $filename) {
    print
    '<li><a href="$filename">' . $filename . '</li>';
    }
    print
    '</ol>';
    ?>
    Ultima modifica di biccheddu : 15-02-2009 alle ore 17.20.34

  10. #10
    Guest

    Predefinito

    Citazione Originalmente inviato da biccheddu Visualizza messaggio
    Codice PHP:
    <?php
    foreach (glob("*.*") as $filename) {
    print
    '<a href="$filename">' . $filename . '<br />';
    }
    ?>
    Altrimenti li puoi pure contare:

    Codice PHP:
    print '<ol>';
    foreach (
    glob("*.*") as $filename) {
    print
    '<li><a href="$filename">' . $filename . '</li>';
    }
    print
    '</ol>';
    ?>

    ottimo ragazzi ci siamo quasi.... o meglio va tutto solo che tutti i file portano al file "http://linuxmx.altervista.org/$filename" cioè non legge la variabile $filename ma si cerca il file chiamato $filename

    graziemille a tutti

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

    Predefinito

    Codice PHP:
    <?php
    foreach (glob("*.*") as $filename) {
    print
    '<a href="'.$filename.'">' . $filename . '<br />';
    }
    ?>
    Codice PHP:
    print '<ol>';
    foreach (
    glob("*.*") as $filename) {
    print
    '<li><a href="'.$filename.'">' . $filename . '</li>';
    }
    print
    '</ol>';
    ?>
    Una variabile racchiusa tra i singoli apici (es. '$var') non mostra il suo valore, mentre quelle racchiude tra i doppi apici si (es. "$var") .
    Ultima modifica di miki92 : 15-02-2009 alle ore 18.11.18
    Apprezzi l'aiuto? Offrimi un caffè!

  12. #12
    Guest

    Predefinito

    Errore di distrazione, scusami

  13. #13
    Guest

    Predefinito

    eccellente!!! era proprio quello che cercavo..
    ho modellato il mio codice per aver 2 tipi di esensione:

    Codice PHP:
    <?php
    print '<ol>';

    foreach (
    glob("*.gz") as $filename) {
    print
    '<li><a href="'.$filename.'">' . $filename . '</li>';
    }
    foreach (
    glob("*.spec") as $filename2) {
    print
    '<li><a href="'.$filename2.'">' . $filename2 . '</li>';
    }
    print
    '</ol>';
    ?>
    solo che in questo caso, l'ordine alfabetico va a farsi friggere..

    Codice:
    Elenco file:
    
       1. 1.gz
       2. gnomad2-2.9.4.tar.gz
       3. oop.gz
       4. 1.spec
       5. gnomad2.spec
       6. jov.spec
    ce un modo per mantenere l'ordine alfabetico?

  14. #14
    Guest

    Predefinito

    Prova con sort()! Ciauu! ^^

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

    Predefinito

    puoi usare array_merge() per unire i più array, e poi sort() come suggerito sopra per riordinare tutti i file.
    Codice PHP:
    $elenco = array_merge( glob( ... ), glob( ... ));
    sort($elenco);

    foreach(
    $elenco as $filename)
    ...
    Ultima modifica di dreadnaut : 15-02-2009 alle ore 20.05.52

  16. #16
    Guest

    Predefinito

    Citazione Originalmente inviato da dreadnaut Visualizza messaggio
    puoi usare array_merge() per unire i più array, e poi sort() come suggerito sopra per riordinare tutti i file.
    Codice PHP:
    $elenco = array_merge( glob( ... ), glob( ... ));
    sort($elenco);

    foreach(
    $elenco as $filename)
    ...
    sicuro? se io faccio cosi, come hai detto tu

    Codice PHP:
    <?php
    print '<ol>';

    $elenco = array_merge( glob( *.gz), glob(*.spec));
    sort($elenco);
    foreach(
    $elenco as $filename) {
    print
    '<li><a href="'.$filename.'">' . $filename . '</li>';
    }
    print
    '</ol>';
    ?>
    mi da errore sulla riga
    Codice PHP:
    $elenco = array_merge( glob( *.gz), glob(*.spec));

  17. #17
    Guest

    Predefinito

    Metti le virgolette:
    Codice PHP:
    $elenco = array_merge( glob('*.gz'), glob('*.spec'));

  18. #18
    L'avatar di Xsescott
    Xsescott non è connesso AlterGuru
    Data registrazione
    08-02-2004
    Messaggi
    1,413

    Predefinito

    Citazione Originalmente inviato da linuxmx Visualizza messaggio
    quindi, se a me interessa il contenuto di

    http://linuxmx.altervista.org/pippo/
    devo modificare cosi? perche non mi va

    Codice PHP:
    // @visualizzazione: metti 0 se vuoi il contenuto solo di una cartella, metti 1 se vuoi navigare
    $visualizzazione = 0;
    // @nome_cartella: il nome della cartella di cui vuoi stampare il contenuto
    $nome_cartella = 'pippo';

    //--------------------------
    // @nome_account: il nick del tuo account
    $nome_account = "linuxmx";

    su nome account devo mettere linuxmx nel mio caso?

    in questo modo
    "Quando il potere dell'amore supererà l'amore per il potere il mondo conoscerà la pace" Jimmy Hendrix


    [ Richiesta: http://www.unibologna.eu/ ] --> [Risposta: http://www.magazine.unibo.it/Magazin...al_Portale.htm Morale] -->[ http://www.anti-phishing.it/news/art...s.13062007.php ]
    consoliwebsite.altervista.org

  19. #19
    L'avatar di Xsescott
    Xsescott non è connesso AlterGuru
    Data registrazione
    08-02-2004
    Messaggi
    1,413

    Predefinito

    Citazione Originalmente inviato da dreadnaut Visualizza messaggio
    già, nel frattempo è uscita glob()
    eh..mi sento vecchio a questo punto
    "Quando il potere dell'amore supererà l'amore per il potere il mondo conoscerà la pace" Jimmy Hendrix


    [ Richiesta: http://www.unibologna.eu/ ] --> [Risposta: http://www.magazine.unibo.it/Magazin...al_Portale.htm Morale] -->[ http://www.anti-phishing.it/news/art...s.13062007.php ]
    consoliwebsite.altervista.org

  20. #20
    Guest

    Predefinito

    ragazzi grazie a voi sto facendo un lavoro stupendo..

    ultima cosa, promesso

    è possibile anche elencare la data di upload?

    e avere la dimensione del file in kb o mb anziche in byte?

  21. #21
    L'avatar di Xsescott
    Xsescott non è connesso AlterGuru
    Data registrazione
    08-02-2004
    Messaggi
    1,413

    Predefinito

    Allora a fine lavoro ce lo farai vedere ;)

    Comunque per il primo punto non conosco la funzione per estrapolarla a basso livello,l'alternativa sarebbe quella di memorizzarla su file, quindi l'upload dovrebbe avvenire da un'altro script scritto ad hoc e che faccia anche ciò.
    per la seconda basta che dividi i byte che suppongo che tu hai, cosi:

    KB: byte/2^10
    MB: byte/2^20

    ciao
    Ultima modifica di Xsescott : 16-02-2009 alle ore 03.15.25
    "Quando il potere dell'amore supererà l'amore per il potere il mondo conoscerà la pace" Jimmy Hendrix


    [ Richiesta: http://www.unibologna.eu/ ] --> [Risposta: http://www.magazine.unibo.it/Magazin...al_Portale.htm Morale] -->[ http://www.anti-phishing.it/news/art...s.13062007.php ]
    consoliwebsite.altervista.org

  22. #22
    Guest

    Predefinito

    Cioè? mi puoi fare un esempio di codice?

  23. #23
    Guest

    Predefinito

    Codice PHP:
    <table width="900" border="1">
    <tr>
    <td width="400" align="left"><div align="left">Name</div></td>
    <td width="100" align="left"><div align="left">Size (byte) </div></td>
    <td width="400" align="left">Link</td>
    </tr>
    <tr>
    <td width="400" align="left"><div align="left">
    <?php
    print '<ol>';

    $elenco = array_merge( glob('*.gz'), glob('*.spec'), glob('*.rpm'), glob('*.bz2'));
    sort($elenco);
    foreach(
    $elenco as $filename) {
    print
    '<li>' . $filename . '</li>';
    }
    print
    '</ol>';
    ?>
    </div></td>
    <td align="left" width="100"><div align="left">
    <?php $elenco = array_merge( glob('*.gz'), glob('*.spec'), glob('*.rpm'), glob('*.bz2'));
    sort($elenco);
    foreach(
    $elenco as $filename) {
    print
    '<a>' . filesize($filename) . '<br />';
    }
    ?>
    </div></td>
    <td width="400" align="left"><div align="left">
    <?php
    print '<ol>';

    $elenco = array_merge( glob('*.gz'), glob('*.spec'), glob('*.rpm'), glob('*.bz2'));
    sort($elenco);
    foreach(
    $elenco as $filename) {
    print
    '<a href="'.$filename.'">' . $filename . '<br />';
    }
    print
    '</ol>';
    ?></div></td>
    </tr>
    </table>


    ecco qui crea una tabella aggiornata con nome file; dimensioni; e link per scaricarlo, contenuti nella cartella stessa in cui vi è la pagina con inserita tale tabella..

    se qualcuno sa come cambiare il valore della dimensione da byte a kb non sarebbe male...

  24. #24
    Guest

    Predefinito

    basta che dividi il valore di filesize per 1024 ;)

  25. #25
    Guest

    Predefinito

    interessante la funzione glob() era proprio quello che cercavo...

    scusate se vado un attimo offtopic, ma esiste un comando simile per eliminare i file? cioè un elenco di voci "elimina, elimina, elimina" che si ricollegano a questi script? in modo da eliminare i file?

    scusate l'offtopic

  26. #26
    Guest

    Predefinito

    Prova così:

    Attenzione: questo script cancella tutti i file nella directory in cui e' eseguito
    Codice PHP:
    <?php
    print '<ol>';

    $elenco = array_merge(glob( *.gz), glob(*.spec));
    sort($elenco);
    foreach(
    $elenco as $filename) {
    print
    '<li><a href="'.$filename.'">' . $filename . '</a> - <a href="' . unlink($filename) . '">Elimina File</a></li>';
    }
    print
    '</ol>';
    ?>
    Se vuoi per tutti basta che modifichi:
    Codice PHP:
    $elenco = array_merge(glob( *.gz), glob(*.spec));
    PS: Le cartelle devono avere i permessi di scrittura impostati correttamente
    Ultima modifica di dreadnaut : 20-02-2009 alle ore 15.17.37

  27. #27
    Guest

    Predefinito

    Citazione Originalmente inviato da biccheddu Visualizza messaggio
    Prova così:

    Codice PHP:
    <?php
    print '<ol>';

    $elenco = array_merge(glob( *.gz), glob(*.spec));
    sort($elenco);
    foreach(
    $elenco as $filename) {
    print
    '<li><a href="'.$filename.'">' . $filename . '</a> - <a href="' . unlink($filename) . '">Elimina File</a></li>';
    }
    print
    '</ol>';
    ?>
    Se vuoi per tutti basta che modifichi:
    Codice PHP:
    $elenco = array_merge(glob( *.gz), glob(*.spec));
    PS: Le cartelle devono avere i permessi di scrittura impostati correttamente
    Bingo! ma è errato :D ti sei dimenticato che glob va scritto glob("*.estension")

    cmq si presentano due problemi pesanti con questo tuo esempio:
    1) se clicco su elimina mi comapre una pagina bianca inesistente chiamata 1 che si trova nella stessa pagina (penso sia piu giusto fare un refresh della pagina al termine di elimina)

    2) se ho 100 file, qualsiasi "elimina" seleziono cancella tutti e 100 i file







    ---------------------------------------



    azzo... la cosa è gravissima, con questo script, se carico la pagina mi vede tutti i file e a fianco mi chiede se cancellarli, ma se semplicemente aggiorno la pagina elimina tutto!!!!



    ------------------------------------------------
    Ultima modifica di sezioneffe : 20-02-2009 alle ore 14.02.19

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

    Predefinito

    Citazione Originalmente inviato da biccheddu Visualizza messaggio
    Prova così:

    Codice PHP:
    ...
    print
    '<li><a href="'.$filename.'">' . $filename . '</a> - <a href="' . unlink($filename) . '">Elimina File</a></li>';
    ...
    pazzia, qua stai richiamando la funzione unlink() (che cancella un file) per ogni file nell'elenco. Ma hai provato lo script prima di suggerirlo? no, ovviamente, perche' ti avrebbe dato errore su glob() che prende come argomento una stringa, e poi si sarebbe autocancellato...

  29. #29
    Guest

    Predefinito

    Prova così:

    Codice PHP:
    <?php
    if(isset($_GET['a']) && $_GET['a']=='delete'){
    if(isset(
    $_GET['f'])){
    if(isset(
    $_GET['c']) && md5(filesize($_GET['f']))==$_GET['c']){ // Gli haker fanno schifo :P
    unlink($_GET['f']);
    }
    }
    }
    print
    '<ol>';

    $elenco = array_merge(glob("*.gz"), glob("*.spec"));
    sort($elenco);
    foreach(
    $elenco as $filename) {
    print
    '<li><a href="'.$filename.'">' . $filename . '</a> - <a href="?a=delete&f='.$filename.'&c='.md5(filesize($filename)).'">Elimina File</a></li>';
    }
    print
    '</ol>';
    ?>
    EDIT: Mi sono accorto depo dell'errore dei Glob
    Ultima modifica di yis : 20-02-2009 alle ore 15.28.58

  30. #30
    Guest

    Predefinito

    Mi scuso, ho postato di fretta

Regole di scrittura

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