Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    opendir: leggere solo alcuni tipi di estensioni

    ciao,

    ho questo script che legge il contenuto di una cartella

    Codice PHP:
    $cartella opendir("news/dati/"); //apro la cartella

    while ($file readdir($cartella)) { //leggo il contenuto della cartella
      
    if ($file != "." && $file != "..") {
       
    $file_array[] = $file// metto il contenuto della cartella in un array
      
    }
    }
    rsort($file_array); //ordino i files in modo decrescente
    foreach ($file_array as $file) { //eseguo il ciclo
    $fd fopen("news/dati/".$file"r"); //apro il contenuto del file
    $contenuto fread($fdfilesize("news/dati/".$file)); //leggo il contenuto del file
    echo $contenuto//stampo il contenuto del file
    fclose ($fd); // chiudo la lettura


    vorrei modificarlo in modo che mi legga solo i file .txt

  2. #2
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    codice:
    print_r("news/dati/*.txt");



  3. #3
    non ho capito... :master:
    perchè print_r() ?

    ma dove poi? all'inizio dopo opendir, oppure quando devo stampare il contenuto ( echo $contenuto )

  4. #4
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    il print_r era solo per stampare l'array risultante.
    vai a vedere il manuale di glob() , cosi capisci


  5. #5
    Utente di HTML.it L'avatar di Il_Drugo
    Registrato dal
    May 2006
    Messaggi
    1,220
    Codice PHP:
    function num_file_dir($dir)

        
    $d dir($dir);
        
    $i=0
        while (
    $entry $d->read()) 
        { 
            if(
    is_file($dir $entry) && strtolower(substr($entry,-4)) == '.pdf')
            {
                
    $nf[$i] = $entry
                
    $i++;
            }
        } 
        
    $d->close(); 
        return 
    $nf;

    Ovviamente basta che cambi l'estensione nell'if e ti trova solo quei determinati files.


  6. #6
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    Originariamente inviato da Il_Drugo
    Codice PHP:
    function num_file_dir($dir)

        
    $d dir($dir);
        
    $i=0
        while (
    $entry $d->read()) 
        { 
            if(
    is_file($dir $entry) && strtolower(substr($entry,-4)) == '.pdf')
            {
                
    $nf[$i] = $entry
                
    $i++;
            }
        } 
        
    $d->close(); 
        return 
    $nf;

    Ovviamente basta che cambi l'estensione nell'if e ti trova solo quei determinati files.

    Perchè complicarsi la vita con 10 righe di codice, quando esiste una funzione che fa tutto?

  7. #7
    Utente di HTML.it L'avatar di Il_Drugo
    Registrato dal
    May 2006
    Messaggi
    1,220
    Si in effetti hai ragione

    Non sapevo dell'esistenza di quella funzione...moooooolto interessante ^^

  8. #8
    ho provato cosi:

    Codice PHP:
    $cartella opendir("news/dati/"); //apro la cartella

    while ($file readdir($cartella)) { //leggo il contenuto della cartella
      
    if ($file != "." && $file != "..") {
       
    $file_array[] = $file// metto il contenuto della cartella in un array
      
    }
    }
    $file_array glob("*.txt");
    rsort($file_array); //ordino i files in modo decrescente
    foreach ($file_array as $file) { //eseguo il ciclo
    $fd fopen("news/dati/".$file"r"); //apro il contenuto del file
    $contenuto fread($fdfilesize("news/dati/".$file)); //leggo il contenuto del file
    echo $contenuto//stampo il contenuto del file
    fclose ($fd); // chiudo la lettura


    ma non funziona...

    mi da un sacco di warning sulle funzioni. ho provato a mettere "@" dappertutto, ma alla fine non stampa nulla a video...
    ok, la funzione glob() non sono riuscito a capire bene come utilizzarla...


    sorry

  9. #9
    sorry...funziona..

    sbagliavo path... :rollo:

    grazie a tutti


  10. #10

    .....

    Puoi usare una cosa del genere:
    Codice PHP:
    <?php
    foreach (glob("include/css/*.css") as $filename) {
        echo 
    file_get_contents($filename);
    }
    ?>
    prima poi mettere
    $file_array = glob("*.txt");
    rsort($file_array);
    Naturalmente devi cambiare il path e l'estensione
    del file ho fatto una prova e allora ...........
    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

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.