Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Spruch des Tages? [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Spruch des Tages?


 
Specter
01-11-2006, 16:01 
 
Hi allerseits,

suche ein Script, welches nach dem zufallsprinzip zeilen aus einer textdatei ausliest, soll auf einer seite als spruch des tages dargestellt werden

 
jahlives
01-11-2006, 18:39 
 
Also das haste in gut 2 min selber geschrieben. Nehmen wir mal an du hast pro Zeile einen weisen Spruch dann liest du die Datei mittels

$sprueche = file('spruch.txt');

in ein Array ein. Dann kannst du das ganze mittels

shuffle($sprueche);

zufällig sortieren und den Spruch des Tages einfach mittels

echo $sprueche[0];

anzeigen lassen.

Gruss

tobi

 
Specter
02-11-2006, 08:31 
 
danke hat genau so geklappt :)

 
TobiaZ
02-11-2006, 12:59 
 
Dumm dass das kein "Spruch des Tages" ist, sondern ein "Spruch des Momentes". Aber ...

 
jahlives
02-11-2006, 16:45 
 
@TobiaZ
Stimmt der Spruch ändert sich mit grösster Wahscheinlichkeit bei jedem Seitenaufruf. Habe ich gar ned bedacht :D
@topicstarter
Lies in diesem Falle das File nur in ein Array und mische nicht mit shuffle(). Dann ziehst du einmalig pro Tag eine Zufallszahl zwischen 0 und count($array) -1 . Dies ist dann die Zeile die angezeigt werden soll. Diese Zahl musst du nun irgendwie speichern, zusammen mit einem timestamp bis zu welchem diese Zahl gültig sein soll (sprich z.B. Mitternacht). Wenn die aktuelle Zeit über diesem Stamp liegt, dann musst du wieder einen Spruch zufällig auswählen und die Zahl und den neuen Stamp in die Datei oder DB schreiben.
Ich würde das in der Form wie z.B.

54;678347832

wobei 54 die Spruchnummer ist und die zweite Zahl der Stamp bis zu welchem diese Zahl gültig sein soll.

Gruss

tobi

 
3DMax
02-11-2006, 17:51 
 
geht auch einfacher - einfach den zufallszahlengenerator mit dem tag des jahres initialisieren.

srand(date('z'));
echo 'Spruch des Tages: '.$sprueche[rand(0, count($sprueche)-1)];


edit: oder besser srand(date('zY')); sonst wiederholen sich ja die sprüche jährlich ;)

 
jahlives
02-11-2006, 17:53 
 
@Max
Ne schlanke saubere Lösung :grin:

Gruss

tobi


Alle Zeitangaben in WEZ +2. Es ist jetzt 20:56 Uhr.