fastix®: CSV-Datei auslesen

Beitrag lesen

Moin!

Hm. der von Dir gegangene Weg ist ineffektiv.
Nimm zum Lesen der Daten die funktion file()

Info: http://de.php.net/manual/de/function.file.php

Diese liest den Text zeilenweise in ein Array.

Mit rand() ermittelst Du eine Zufallszahl, Du kanns die kleinste und größte mögliche Zahl bestimmen.
In Deinem Fall wären das 0 und 1499 oder einfach Die Anzahl der Elemente im Array -1 (liefert count()).
Info: http://de.php.net/manual/de/function.rand.php
Info: http://de.php.net/manual/de/function.count.php
Dann musst Du den Inhalt der Zeile spalten. Mit CSV meinst Du sicher eine mit Semikolon separierte Datei. Das macht split(), list() kann dann die Daten aus dem Array Variablen zuweisen.
Info: http://de.php.net/manual/de/function.split.php

<?
$strDatei  = "statistik.csv";
$arDatenmenge = file($datei);
$intZufall     = rand(0, count($arDatenmenge)-1 );
$strDatensatz  = $sarDatenmenge[$intZufall];
list($strAutor, $strText) = split(';', $strDatensatz);
unset($arDatenmenge);                                  // Speicher sparen :)
echo "$strAutor schrieb $strText";
?>

Eventuell musst Du noch die Textbegrenzer strippen. Aber ich kenne ja das Format Deiner CSV- Datei nicht. Definiert ist CSV jedenfalls nicht.

Hier ein Ansatz mit fgetcsv: ich habe das Beispiel aus:
http://de.php.net/manual/de/function.fgetcsv.php ergänzt.

<?php
$intZufall     = rand(0,1499);                 //
$row = 1;                                      // Anzahl der Arrays
$handle = fopen ("test.csv","r") or die ("test.csv konnte nicht geöffnet werden"); // Datei zum Lesen öffnen
while (
        ( ($data = fgetcsv ($handle, 10000, ';')) !== FALSE )
  AND
        ( $num < 1499)
      )

// solange daten übernommen werden können und $row < 1499 ist.
// Daten werden aus der Datei in ein Array $data gelesen

if ($row == $intZufall) {
      $strAutor = $data[0];
      $strText  = $data[1];
      $num = 1500;                             // Abbruch der Schleife!
   } // end if

} // end while
fclose ($handle);

echo "$strAutor - $strText";

?>

Die Beispiele sind natürlich ungetestet, können also Syntaxfehlerchen enthalten.

MFFG (Mit freundlich- friedfertigem Grinsen)

fastix®

--
Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Development. Auch  für seriöse Agenturen.