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

    mostrare file txt casuale in una cartella

    Ciao
    volevo chiedere come era possibile in PHP fare in modo che in modo casuale venga caricato un diverso file txt contenuto in una determinata cartella

    Ad esempio:
    cartella "testi"
    testo1.txt
    testo2.txt
    testo3.txt

    quando l'utente apre la pagina prova.php viene caricato a caso un file TXT della cartella e viene visualizzato il suo contenuto

    grazie mille

    deste

  2. #2
    Codice PHP:
    <?php
     $cartella
    ="testi/.";
     
    $arr_file=array("testo1.txt","testo2.txt","testo3.txt");
     
    $r=array_rand($arr_file);
      
    $fd=fopen($cartella.$arr_file[$r],"r+");
      
    $read=fread($fd,filesize($cartella.$arr_file[$r]));
      
    fclose($fd);
      echo 
    $read;
    ?>

  3. #3
    Lo script precedente è sicuramente molto più esatto solo ha il "difetto" che ti costringe ad elencare i a manina i file in esso contenuti...

    Io (che sono moooolto meno bravo di chi ti ha risposta in precedenza) per uso personale ho utilizzato in passato un script che non aveva questa neceddita... in pratica crea in automatico l'array con tutti i file contenuti nella cartella.

    Ad onor del vero lo scritp si "ispira" a quello contenuto qui

    Ovviamente nessuna responsabilità sul funzionamento...
    Codice PHP:
    <?php
    /*imposta il percorso alla cartella dalla quale vuoi leggere i file senza / finale*/

    $cartella="../percorso/nome_cartella";

    /*il resto va bene così*/

    function elencafiles($dirname){    
        
    $arrayfiles=Array();    
        if(
    file_exists($dirname)){        
            
    $handle opendir($dirname);        
            while (
    false !== ($file readdir($handle))) {             
                    if(
    is_file($dirname.$file)){                
                            
    array_push($arrayfiles,$file);            
                    }        
                }        
                
    $handle closedir($handle);    
            }    
            
    sort($arrayfiles);    
            return 
    $arrayfiles;
    }
    $arrayfile=array();
    $arrayfile=elencafiles("$cartella/");

    $num=count($arrayfile);

    $casuale=rand(1,$num)-1;

    $file_casuale$arrayfile[$casuale];

    $read=$cartella."/".$file_casuale;
    $var=fopen("$cartella/$file_casuale","r");
    $var2=fread($var,filesize("$read"));

    echo 
    $var2;

    ?>
    fammi sapere se ti funziona

  4. #4
    grazie mille!!!
    funzionano tutti e 2!!!!

  5. #5
    volevo usare il codice di oly1982 2 volte nella stessa pagina ma mi da errore
    Codice PHP:
    Fatal errorCannot redeclare elencafiles() (previously declared in /home/mhd-01/www 
    come mai??

  6. #6
    Cannot redeclare elencafiles()
    Traduzione = non puoi dichiarare due volte una funzione elencafile()... ovvio non puoi definire due volte la stessa unzione

    quindi la seconda volta che lo utilizzi devi toglierla...

    Codice PHP:
    <?php
    /*imposta il percorso alla cartella dalla quale vuoi leggere i file*/

    $cartella="../percorso/nome_cartella1";

    /*il resto va bene così*/

    function elencafiles($dirname){    
        
    $arrayfiles=Array();    
        if(
    file_exists($dirname)){        
            
    $handle opendir($dirname);        
            while (
    false !== ($file readdir($handle))) {             
                    if(
    is_file($dirname.$file)){                
                            
    array_push($arrayfiles,$file);            
                    }        
                }        
                
    $handle closedir($handle);    
            }    
            
    sort($arrayfiles);    
            return 
    $arrayfiles;
    }
    $arrayfile=array();
    $arrayfile=elencafiles("$cartella/");

    $num=count($arrayfile);

    $casuale=rand(1,$num)-1;

    $file_casuale$arrayfile[$casuale];

    $read=$cartella."/".$file_casuale;
    $var=fopen("$cartella/$file_casuale","r");
    $var2=fread($var,filesize("$read"));

    echo 
    $var2;

    ?>


    <?php
    /*imposta il percorso alla cartella dalla quale vuoi leggere i file*/

    $cartella="../percorso/nome_cartella_2";

    /*il resto va bene così*/


    $arrayfile=elencafiles("$cartella/");

    $num=count($arrayfile);

    $casuale=rand(1,$num)-1;

    $file_casuale$arrayfile[$casuale];

    $read=$cartella."/".$file_casuale;
    $var=fopen("$cartella/$file_casuale","r");
    $var2=fread($var,filesize("$read"));

    fclose($var);

    echo 
    $var2;

    ?>

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.