Random Script (für CODE, nicht Bilder!) bei Refresh

joobie

Mitglied
Hallo zusammen,

nach langer und ergebnisloser Suche stelle ich diese Frage einfach mal. Vielleicht gibt's dazu schon eine Antwort, die ich leider nicht finden konnte - -

Ich suche ein Random-Script, das bei jedem Refresh eine andere (beliebig benannte) PHP-Datei aus einem vorgegebenen Subfolder (pfad) lädt. Im Prinzip wie mit Bildern, und ein paar solcher Scripte habe ich auch versucht umzumodeln, doch das hat nicht geklappt.

Das Script soll zufällige Testimonials (Kundenstimmen) in ein Div laden (z.B. per include). Jedes Testimonial ist eine separate PHP-Datei mit Markup (Divs für Text, Bild und einen Link). Die Testimonial-PHPs sollen beliebig benannt werden können, zwecks einfacher Aktualisierung. Theoretisch sollen unendlich viele Testimonial-PHPs existieren können, und eine Aktualisierung würde dadurch stattfinden, dass man einfach eine neue Testimonial-PHP in dem Pfad ablegt.

Also würde es nichts bringen, die Testimonial-PHPs zu numerieren und per PHP eine Zufallszahl zu generieren.

Kannst Du mir helfen? :)

Gruß
Joobie
 
heey,

ich hoffe mal das ich das richtig verstehe.

Also du könntest einfach alle php dateien auslesen lassen und dann in ein array schreiben. Dann nimmst du drei zufallszahlen und includest das dann.

PHP:
for(....){
in array schreiben $array[]=..;
}
$zufall1=rand(0,count($array));
$zufall2=rand(0,count($array));  //kannst du noch per if abfrage gucken das es keine
$zufall3=rand(0,count($array));  //gleichen zufallszahlen gibt...
include $array[$zufall1];
include $array[$zufall2];
include $array[$zufall3];

wie das genau mit dem auslesen ist musst du nochma gucken das hab ich nich so im kopf... aba da findest du bei :google: bestimmt was nettes

LG Nino
 
Hallo Nino,

sehr gute Idee, vielen Dank! Ich hab's gerade auch woanders gefunden und stelle das mal hier rein, auch für andere, die das vielleicht brauchen. Es ist im Prinzip was Du sagst, hier ist der Code:

Code:
function RandomFile($folder='', $extensions='.*'){
 
    // fix path:
    $folder = trim($folder);
    $folder = ($folder == '') ? './' : $folder;
 
    // check folder:
    if (!is_dir($folder)){ die('invalid folder given!'); }
 
    // create files array
    $files = array();
 
    // open directory
    if ($dir = @opendir($folder)){
 
        // go trough all files:
        while($file = readdir($dir)){
 
            if (!preg_match('/^\.+$/', $file) and 
                preg_match('/\.('.$extensions.')$/', $file)){
 
                // feed the array:
                $files[] = $file;                
            }            
        }        
        // close directory
        closedir($dir);    
    }
    else {
        die('Could not open the folder "'.$folder.'"');
    }
 
    if (count($files) == 0){
        die('No files where found :-(');
    }
 
    // seed random function:
    mt_srand((double)microtime()*1000000);
 
    // get an random index:
    $rand = mt_rand(0, count($files)-1);
 
    // check again:
    if (!isset($files[$rand])){
        die('Array index was not found! very strange!');
    }
 
    // return the random file:
    return $folder . $files[$rand];
 
}

Der muss nicht verändert werden. Die Ausgabe erfolgt mit:

Code:
<?php include RandomFile('meinpfad/','.*'); ?>

...und das funktioniert einwandfrei! (Bis jetzt jedenfalls ;) )

Danke an Jonas John - hier ist das Original.

Cheers :)
 
Zurück