Suche Script zum Auslesen aus Datei

Grinsemann

New member
…ich suche ein Script, am besten cgi, das eine Liste aus einer Datei ausliest, und diese in einer HTML-Datei ausgibt.

Der Dateiinhalt soll dabei etwa so aussehen:

   [Band 1]
     :Lied 1: (URL)
     :Lied 2: (URL)

   [Band 2]
     :Lied 1: (URL)

Trennzeichen in 'crimson'.
 
Hallo!

Folgendes könnte ich mir vorstellen:

PHP:
<?php

$songs = "songs.dat";

$file  = file($songs);
$bands = Array();
$v     = 0;

for($x=0;$x<count($file);$x++)
{
    if(eregi("\\[",$file[$x])) // -> Neue Band
    {
        preg_match('|\\[(.*)\\]|',$file[$x],$theBand);
        $bands[][0] = $theBand[1];
        $v = 1;
    }
    elseif(eregi(":\(.*):",$file[$x])) // -> Neuer Song
    {
        preg_match('|:\(.*):|U',$file[$x],$theSong);
        preg_match('|\\((.*)\\)|U',$file[$x],$theUrl);
        $bands[count($bands) - 1][$v] = "<a href=\"".$theUrl[1]."\">".$theSong[1]."</a>";
        $v++;
    }
}

//Ausgabe (Könnte auch schon oben erfolgen)
for($x=0;$x<count($bands);$x++)
{
    echo $bands[$x][0],"<br>";
    for($y=1;$y<count($bands[$x]);$y++)
    {
        echo "   ",$bands[$x][$y],"<br>";
    }
    echo "<br>";
}
?>

An deine Bedürfnisse angepasst und fertig
 
Zuletzt bearbeitet:
Hallo!

Du kopierst das Skript in eine Datei und benennst diese von mir aus-> songs.php.
So dann mußt du noch die Datei mit dem Inhalt angeben im SKript folgendermassen gelöst: $songs = "songs.dat";
In den Anführungszeichen schreibst du den Namen der Datei rein die die Daten enthält, gegebenenfalls mit Pfad versehen(Falls das File nicht im selben Verzeichniss wie das Skript liegt).
Jetzt die beiden Dateien(songs.php und die Datei mit dem Inhalt) auf den Server kopieren und im Browser aufrufen, fertig.

Ich hoffe dein Hoster bietet PHP an sonst haben wir Pech gehabt, in PERL bin ich nicht so begangen.
 
Wenn es morgen nicht zu warm wird, werde ich mir mal mein Perl Kochbuch schnappen, was ich übrigens wärmstens empfehlen kann....
 
Hallo!

Hab im Skript noch ein paar Anpassungen vorgenommen, da das orum hier nicht alle \ und teilweise <img src="smilie.gif"> drin hatte was nicht beabsichtigt war, jetzt passt es aber 100%.
 
Nochmals danke für das Script, klappt wunderbar (» FAH-Q.org » mp3/video).


Jetzt hab ich bloß noch ein Problem:
Da das Bearbeiten dieser Dateien mit einem FTP-Programm etwas umständliche sind, hab ich vor dies über ein bequemes Formular zu tätigen. Das Einlesen ist Dank des Scriptes kein Problem, nur mit dem Speichern hab ich so meine Schweirigkeiten, wäre nett, wenn ihr mir helfen könntet.
 
Ich brauch jetzt noch eins für die Biertests. Die Dateien sind etwa so aufgebaut:

[Name]
  Becks's
[Inhalt]
  0,5
[Preis]
  0,55
[Kommentar]
  Blablablabla
[Bewertung]
  4


Jetzt will ich alle Attribute in einzelne Variabeln abspeichern.

Hätt ich eine Ahnung, womit ich den Text jeweils Hinter den eckigen Klammern bekomme wär ich schon ein riesiges Stück weiter!
 
Wie wärs, wenn Du einfach Comets Skript nimmst und es Dir entsprechend umschreibst.... was natürlich voraussetzt, daß Du es Dir anschaust und es auch durchschaust....

Aber da ist alles drinne, was Du brauchst....
 
Also um es vorweg zu sagen kenn ich mich nur mit der Struktur von PHP aus, nicht aber mit den Funktionen.
Deshalb steig ich auch nur halb durch Comets Script durch.

Ausserdem sind die Werte in Comets Script in, in dem welches ich nun bräuchte nach den eckigen Klammern mit den beinhaltenden Beschreibungen.
 
Es ist nie zu früh, um mit dem Lernen anzufangen ;)
Und am besten funktioniert Learning by doing.....
 
Hab's!

Woah, ich hab jetzt ne Lösung gefunden:

  $a = array("[Name]","[Inhalt]","[Preis]","[Kommentar]","[Bewertung]");
  if($file)
    {
    $filecontent = fread($file, filesize($source));
    $temp = explode($a[0], $filecontent);
      $sorte = explode($a[1], $temp[1]);
    $temp = explode($a[1], $filecontent);
      $inhalt = explode($a[2], $temp[1]);
    $temp = explode($a[2], $filecontent);
      $preis = explode($a[3], $temp[1]);
    $temp = explode($a[3], $filecontent);
      $kommentar = explode($a[4], $temp[1]);
    $temp = explode($a[4], $filecontent);
      $bewertung = $temp[1];
   fclose($file);

   echo "Name: ".$sorte[0]."<br>\n";
   echo "Art: ".$art."<br>\n";
   echo "Inhalt: ".$inhalt[0]."<br>\n";
   echo "Preis: ".$preis[0]."<br>";
   echo "Kommentar: ".$kommentar[0]."<br>\n";
   echo "Bewertung: ".$bewertung;
   }


Sieht zwar blöd aus, erweist aber seinen Dienst.


Falls ihr eine kürzere, einfachere Lösung habt, sagt mir Bescheid!
 
Die Funktionen kannst du hier nachgucken:
http://de.php.net/funktionsname

Dort ist alles ausführlich beschrieben. Untendrunter sind auch Usercomments.

Ach und warum benutzt du nicht gleich eine Datenbank für deine Daten? Das ist viel Übersichtlicher, man kann leichter ein Admin-System schreiben und man kann die Einträge super sortieren lassen.
 
Zuletzt bearbeitet:
Zurück
Oben