mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Do 28.03.2024 20:41 Benutzername: Passwort: Auto-Login

Thema: php - zufalls datei aus verzeichnis auslesen vom 04.02.2010


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> php - zufalls datei aus verzeichnis auslesen
Seite: 1, 2, 3  Weiter
Autor Nachricht
Psilo
Threadersteller

Dabei seit: 20.02.2007
Ort: -
Alter: 35
Geschlecht: Männlich
Verfasst Do 04.02.2010 17:05
Titel

php - zufalls datei aus verzeichnis auslesen

Antworten mit Zitat Zum Seitenanfang

Hallo,
ich versuche eine zufällig ausgewählte Datei aus einem Verzeichnis auszulesen.
Gegeben ist lediglich das Verzeichnis.
Momentan lese ich das Verzeichnis komplett aus und speichere die Dateien in einem Array.. Dann lass ich mir am Ende einen Zufalls-Array Eintrag (zwischen 0 und allen gezählten Dateien) ausgeben und lese die Datei aus.
Problem dabei... Das ganze wird vermutlich lange Ladezeiten haben wenn in dem Verzeichnis mal tausende Dateien sind, oder?
Daher würde ich gerne einfach sofort sagen. lese Datei 517 aus Verzeichnis bla..
die Dateinamen liegen leider nicht vor.. daher kann ich die Datei nicht einfach direkt ansprechen.
Hoffe ihr habt verstanden was mein Problem ist.. Bei Hilfe wäre ich sehr dankbar
Gruß
  View user's profile Private Nachricht senden
choise

Dabei seit: 01.02.2007
Ort: Würzburg
Alter: 35
Geschlecht: Männlich
Verfasst Do 04.02.2010 17:16
Titel

Antworten mit Zitat Zum Seitenanfang

einfach cachen * Keine Ahnung... *
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Anzeige
Anzeige
Psilo
Threadersteller

Dabei seit: 20.02.2007
Ort: -
Alter: 35
Geschlecht: Männlich
Verfasst Do 04.02.2010 17:54
Titel

Antworten mit Zitat Zum Seitenanfang

sorry,
verstehe nicht ganz..
kannst du mir noch ein bisschen auf die sprünge helfen?
oder einen passenden link geben?

// edit
hab da grad schon was gelesen aber weiß nich ob mir das in dem fall weiterhilft?
meinst du ich soll das array der seiten cachen, nachdem es das erste mal durchlaufen wurde?
allerdings kann sich dieses array jederzeit erweitern...
naja.. ich steh n bissl aufm schlauch

// edit 2
also eigentlich will ich ja einfach nur sagen können
lies mir x te datei aus dem verzeichnis y aus


Zuletzt bearbeitet von Psilo am Do 04.02.2010 17:59, insgesamt 2-mal bearbeitet
  View user's profile Private Nachricht senden
m
Moderator

Dabei seit: 18.11.2004
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Do 04.02.2010 18:17
Titel

Antworten mit Zitat Zum Seitenanfang

Die Dateinamen sind Nummern in Reihenfolge oder wie? Und wie kommt es dazu
dass du tausende Dateien in einem Verzeichnis hast auf die du zugreifen möchtest
ohne die Dateinamen zu kennen?
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Psilo
Threadersteller

Dabei seit: 20.02.2007
Ort: -
Alter: 35
Geschlecht: Männlich
Verfasst Do 04.02.2010 18:27
Titel

Antworten mit Zitat Zum Seitenanfang

ne, die dateinamen sind timestamp+zufallscode...
die dateinamen habe ich ja zusätzlich hinterlegt.. aber in diesem fall kann ich nicht darauf zugreifen.. oder ich kann schon, aber es wäre sehr aufwendig..
es soll mir immer eine zufallsdatei aus dem verzeichnis auslesen ohne das ich dieses bis zu der jeweiligen zufallszahl durchlaufen muss, da es eben irgendwann sehr viele dateien werden könnten
also wie könnte man es anders machen oder geht das nicht?

hier mal ein auszug
Code:
require $_SERVER["DOCUMENT_ROOT"]."/verzeichnis/count.php";
   if($count!=0) {
      $zufallZahl = rand(1,$count);
      $ordner = openDir($_SERVER["DOCUMENT_ROOT"]."/verzeichnis/");
      $i = 1;
      while (($datei = readDir($ordner))&&$erfolg!="on") {
         if ($datei != "." && $datei != ".." && $datei != "count.php") {
            if($i==$zufallZahl) {
               $inhalt.= "<a href=\"$datei\">$datei</a><br>\n";
               $erfolg = "on";
            }
            $i++;
         }
      }
      closeDir($ordner);
   } else {
      $inhalt = "<p class='info'>Bisher sind noch keine Dateien vorhanden.</p>";
   }


Zuletzt bearbeitet von Psilo am Do 04.02.2010 18:32, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
m
Moderator

Dabei seit: 18.11.2004
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Do 04.02.2010 18:34
Titel

Antworten mit Zitat Zum Seitenanfang

Psilo hat geschrieben:
die dateinamen habe ich ja zusätzlich hinterlegt.. aber in diesem fall kann ich nicht darauf zugreifen.. oder ich kann schon, aber es wäre sehr aufwendig..


Das heißt was? Du hast die Dateinamen in einer Datenbank gespeichert?


Edit: Andernfalls bleibt dir nur das Verzeichnis einzulesen und auf das array
shuffle anzuwenden und dann einfach auf das erste Element zugreifen.


Zuletzt bearbeitet von m am Do 04.02.2010 18:35, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
DEKONSTRUKTIV

Dabei seit: 22.06.2009
Ort: bln
Alter: -
Geschlecht: -
Verfasst Do 04.02.2010 18:38
Titel

Antworten mit Zitat Zum Seitenanfang

Code:
$count = count(glob("*", GLOB_NOSORT));


2 abziehn für . und .. und dann ne zufallszahl 0..$count und das entsprechende file lesen.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Psilo
Threadersteller

Dabei seit: 20.02.2007
Ort: -
Alter: 35
Geschlecht: Männlich
Verfasst Do 04.02.2010 18:41
Titel

Antworten mit Zitat Zum Seitenanfang

ne, leider nicht in einer datenbank..
naja, schade.. shuffle bringt mir in dem fall auch nix..
aber danke
  View user's profile Private Nachricht senden
 
Ähnliche Themen [PHP] Verzeichnis auslesen?
passwort von geschüztem verzeichnis auslesen
Ordner aus einem bestimmten Verzeichnis auslesen
Auslesen von Variablen aus TXT Datei
XML-Datei auslesen und in Datenbank schreiben
Mit Flash TXT-Datei zeilenweise auslesen?
Neues Thema eröffnen   Neue Antwort erstellen Seite: 1, 2, 3  Weiter
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.