Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 28
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    267

    visualizza file in directory

    Salve,
    gentilmente, qualcuno di voi sa per caso come fare a visualizzare i file in una directory mostrando solo alcune estensioni e senza visualizzare l'estensione?
    es.

    file1 (sarebbe un .txt)
    file2 (sarebbe un .jpg)
    file3 (sarebbe un .pdf)
    file4 non visualizzato perchè .gif

    Naturalmente dovrebbero essere cliccabili

    Forse chiedo troppo ma magari qualcuno ha il codice già fatto - sarebbe il massimo se fosse omesso il segno _

    Forse chiedo troppo - mah, non si sa mai

  2. #2
    Prova ad andrare su www.phpclasses.org. Troverai sicuramente ciò che fa al caso tuo! Ciao!
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

  3. #3
    lo puoi fare tranquillamente anche con le funzioni della classe dir() , sul manuale trovi molta documentazione e altrettanti esempi.








    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    267
    :master: EHM!!! non intendevo dire che lo dovevo fare io!!! perchè non riuscirei neanche ad iniziare!!!
    Chiedevo se ci fosse qualcuno che già ne avesse uno.

  5. #5
    Originariamente inviato da retaccia
    :master: EHM!!! non intendevo dire che lo dovevo fare io!!! perchè non riuscirei neanche ad iniziare!!!
    Chiedevo se ci fosse qualcuno che già ne avesse uno.
    e se te lo facciamo noi tu che beneficio ne ricavi?

    quello di aver le cose già fatte?
    ma l'hai data un'occhiata alla pagina che ti ho linkato? secondo me no, perché quantomeno c'avresti provato; nella pagina che ti ho linkato trovi un esempio:

    codice:
    <?php
    $d = dir("/etc");
    echo "Handle: " . $d->handle . "
    \n";
    echo "Path: " . $d->path . "
    \n";
    while ($entry = $d->read()) {
       echo $entry."
    \n";
    }
    $d->close();
    ?>
    che ti scorre la directory e ti scrive i file che ci sono dentro.
    Poi per vedere l'estensione puoi usare o substr() guardando solo gli ultimi 3 caratteri (ma ti possono capitare estensioni maggiori). Quindi per l'estenzione ti consiglierei di usare l'accoppiata explode e array_pop in questo modo:

    codice:
    $ext=array_pop(explode(".",$filename));
    Penso di averti dato tutti i pezzi, ora devi solo mettere insieme le varie parti...dando magari un'occhiata alle funzioni che ti ho linkato. E se dopo aver provato avrai qualche problema chiedi pure, ma non chiedere soluzioni e basta, se no non si impara mai...



    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  6. #6
    Penso di averti dato tutti i pezzi, ora devi solo mettere insieme le varie parti...dando magari un'occhiata alle funzioni che ti ho linkato. E se dopo aver provato avrai qualche problema chiedi pure, ma non chiedere soluzioni e basta, se no non si impara mai...
    Concordo pienamente!
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    267
    ho provato così:
    <?php
    $d = dir(".");
    echo "Handle: " . $d->handle . "
    \n";
    echo "Path: " . $d->path . "
    \n";
    $ext=array_pop(explode(".",$filename));
    while ($entry = $d->read()) {
    echo $entry."
    \n";
    }
    $d->close();
    ?>

    e vedo solo questo:

    Handle: Resource id #1
    Path: .
    .
    ..
    1.txt
    2.txt
    index.php
    logo.gif

  8. #8
    significa che in quella cartella hai quei files, è giusto quello che vedi, ora devi applicare le funzioni che ti ho suggerito prima.

    Un suggerimento, dal tuo ciclo escludi il . e .. che stanno a signifiacare la directory stessa e quella madre, aggiungendo appena dopo l'apertura del while:

    codice:
    if ( $entry=='.' || $entry=='..' )
      continue;
    e magari non far scrivere nemmeno l'handle e il path, che servivano solo nell'esempio come una sorta di debug





    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    267
    allora partiamo da qui:

    <?php
    $directory=".";
    $open_handle=opendir($directory);
    while($read=readdir($open_handle)){
    if($read!="." && $read!=".."){
    echo ("<a href=\"./$read\" target=\"blank\">$read</a>
    ");
    }
    }
    closedir($open_handle);
    ?>

    con questo vedo i file della directory e posso cliccarli.
    Adesso:
    1) dovrei togliere l'estensione (es. .txt) in modo da visualizzare solo il nome del file
    2) e fare in modo che si visualizzino solo i file che voglio io (es. solo .txt)

  10. #10
    per visualizzare solo i file delle estensioni che vui, crea un array e scrivici dentro tutte le estensioni consentite:

    codice:
    $extarray=array("txt", "jpg", "gif");

    poi ti calcoli l'estensione come ti ho scritto prima e aggiungi una condizione al tuo if, che fa scrivere il nome del file solo se l'estensione è contenuta nell'array. Per fare questo hai bisogno della funzione in_array: http://it2.php.net/manual/it/function.in-array.php



    per far scrivere solo il nome senza estensione devi lavorare sulla stringa e manipolarla con explode, substr (in modo semplice), oppure con le espressioni regolari...ma non mi sembra il caso di scomodarle
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

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.