enrico: txt-Datei über PHP einlesen und in Javascript-Array ablegen

Hallo,

jetzt funktioniert mein Vorhaben, eine DVD-Verwaltung für eigene Zwecke über PHP
aufzubauen, nicht mehr, ich bin an eine Grenze gestossen, die den Programmieraufwand
in's Unermessliche steigern lassen würde.

Die einzige Lösung, die ich jetzt, auch aus Gründen der Performance, habe, ist, die
Verwaltung auf Javascript aufzubauen.

Ich habe gestern ja zahlreiche Hilfestellungen bekommen, wie ich eine txt-Datei über
PHP in ein mehrdimensionales Array einlese (hierfür nochmals vielen Dank an ChrisB
und Peter), nun stehe ich aber vor dem Problem, diese Handhabung auf Javascript
umzumünzen.

Dies ist bislang mein Code:

<?php

$Dateizeiger = fopen ("BIBLIOTHEKEN/DVD-SAMMLUNG.txt", "r");

if ($Dateizeiger)
      {
         $Zaehler = 0;

echo '<script type="text/javascript">\r';
         echo '<!--\r';
         echo 'var Film = new Array();';

while (!feof ($Dateizeiger))
         {
            $Zeile  = fgets ($Dateizeiger);
            $Spalte = explode("|", $Zeile);

echo 'Film[' . $Zaehler . ']           = new Object();\r';
            echo 'Film[' . $Zaehler . ']["Nr"]     = "' . $Spalte[0] . '";\r';
            echo 'Film[' . $Zaehler . ']["Titel"]  = "' . $Spalte[1] . '";\r';
            echo 'Film[' . $Zaehler . ']["Inhalt"] = "' . $Spalte[2] . '";\r';
            echo 'Film[' . $Zaehler . ']["Genre"]  = "' . $Spalte[3] . '";\r';
            echo 'Film[' . $Zaehler . ']["FSK"]    = "' . $Spalte[4] . '";\r';

$Zaehler = $Zaehler + 1;
         }

echo '//-->\r';
         echo '</script>\r';
      }

fclose ($Dateizeiger);

?>

Mein Problem ist zunächst, dass ich, egal ob ich "\n" oder "\r" verwende, keine
Zeilenumbrüche im eigentlichen Sinne hinbekomme, sondern dass mir diese beiden
Zeichenfolgen angezeigt werden.

Dieses Problem ist aber eigentlich nur optischer Natur, ich könnte, sofern die
Zeilenumbrüche auch als solche angezeigt bzw. ausgeführt werden würden, das
Array wesentlich besser auf seine Korrektheit hin überprüfen, da ich dann für
jede Definition eine eigene Zeile hätte.

Wichtiger ist aber, ob ich mit obigem Code auch _wirklich_ ein Javascript-Array
aufbaue.

Bekomme ich auf obige Weise ein Javascript-Array hin ?

Die Anzeige des Quelltextes, mit manuell ergänzten Zeilenumbrüchen *grml*, ließe
zumindest darauf schliessen:

var Film = new Array();

Film[0]           = new Object();
   Film[0]["Nr"]     = "1";
   Film[0]["Titel"]  = "LIGHTHOUSE - INSEL DES GRAUENS";
   Film[0]["Inhalt"] = "Mitten auf dem Ozean und während der Überführung in ...";
   Film[0]["Genre"]  = "Horror/Thriller";
   Film[0]["FSK"]    = "16";

Film[1]           = new Object();
   Film[1]["Nr"]     = ...
   ...

Wenn es so funktionieren sollte, dann sehe ich aber früher oder später Probleme auf
mich zukommen, wenn die Filme in die Hunderte gehen, was auch früher oder später der
Fall sein wird, da ich bislang nur einen Bruchteil meiner Sammlung erfasst habe.

Und wie bekomme ich tatsächliche Zeilenumbrüche im Quelltext hin?

Vielen Dank für Eure Mithilfe.

Viele Grüße,
Enrico

  1. Grüße,
    für ein gewisse menge bier gibts von mir übers wochenende ein standalone-windows programm das es kann :) ! hab nähmlich shcon ein eigenes system bloß mit weniger spalten für hausgebrauch ;)
    MFG
    bleicher

    --
    __________________________-
    Menschen an sich , sind nicht schlecht - es sind nur ihre Taten (c).
    Lieber bereuen gesündigt zu haben, als nicht sündigen und es später trotzdem bereuen.
    Boccaccio
    1. Hallo bleicher,

      nun gut, Deine Antwort entbehrt sicherlich nicht einer gewissen Prise Humors, bringt mich
      aber leider auch nicht so recht weiter... ;-)

      Viele Grüße,
      Enrico

      1. du könntest es auch so auffassen - es geht auch standalone was performancemäßig enorm vorteilhaft ist. solltest du die ganze dvdverwaltung lokallösen wollen so heißt es dementsprehcned dass ich helfen konnte.
        ob ich es nun nüchtern tue oder bacchus huldige sei mal dahingestellt^^

        MFG
        bleicher

        --
        __________________________-
        Menschen an sich , sind nicht schlecht - es sind nur ihre Taten (c).
        Lieber bereuen gesündigt zu haben, als nicht sündigen und es später trotzdem bereuen.
        Boccaccio
        1. Hallo bleicher,

          ja, ich möchte meine DVD-Verwaltung komplett lokal lösen, was natürlich auch
          Sinn macht ;-)

          Was verstehst Du unter "standalone" ?

          Gruß
          Enrico

          1. Grüße,

            Was verstehst Du unter "standalone" ?

            eine ohne weitere zusätze (apache server, sql server etc) laufende EXE datei. ein stinknormal aussehndes windows-programm.

            das ist das was cih benutze (eine zwischenversion glaube ich)
            http://www.mediafire.com/?ngzujygxvzj

            hat mir insgesamt 6-7 stunden zeit gekostet, mit allem drum und dran.

            MFG
            bleicher

            --
            __________________________-
            Menschen an sich , sind nicht schlecht - es sind nur ihre Taten (c).
            Lieber bereuen gesündigt zu haben, als nicht sündigen und es später trotzdem bereuen.
            Boccaccio
            1. Hallo bleichner,

              bezüglich der - in dieser Form nicht testbaren - Funktionalität bestimmt gar nicht schlecht,
              allerdings vom (aktuellen) Design - ich weiß ja nicht, ob Du bzw. ob man statt der Windows-eigenen
              Elemente auch eigene Grafiken und persönlich beabsichtigte optische Effekte (MouseOver,...)
              einbauen kann - für mich zu puristisch.

              Ansonsten wäre diese Idee sicherlich nicht schlecht.

              Gruß,
              Enrico

              1. Grüße,

                bezüglich der - in dieser Form nicht testbaren - Funktionalität bestimmt gar nicht schlecht,
                allerdings vom (aktuellen) Design - ich weiß ja nicht, ob Du bzw. ob man statt der Windows-eigenen
                Elemente auch eigene Grafiken und persönlich beabsichtigte optische Effekte (MouseOver,...)
                einbauen kann - für mich zu puristisch.

                Ansonsten wäre diese Idee sicherlich nicht schlecht.

                eigentlich geht dort alles - man kann so ziemlich jeden graphischen schnickschnack reinbasteln - nur zeugt es imho nicht gerade vom großen nutzen^^

                und was meinst du mit "nicht testbare funktionalität"?

                MFG
                bleicher

                --
                __________________________-
                Menschen an sich , sind nicht schlecht - es sind nur ihre Taten (c).
                Lieber bereuen gesündigt zu haben, als nicht sündigen und es später trotzdem bereuen.
                Boccaccio
  2. Hi,

    Mein Problem ist zunächst, dass ich, egal ob ich "\n" oder "\r" verwende, keine Zeilenumbrüche im eigentlichen Sinne hinbekomme, sondern dass mir diese beiden Zeichenfolgen angezeigt werden.

    Das ist ein durch RTFM zu loesendes "Problem".

    (In der Schreibweise, in der du sie in obigem Absatz notiert hast, hast du die Zeichen um Script selber nicht notiert.)

    Wichtiger ist aber, ob ich mit obigem Code auch _wirklich_ ein Javascript-Array aufbaue.

    Bekomme ich auf obige Weise ein Javascript-Array hin ?

    Wenn die Ausgabe korrekte JavaScript-Syntax darstellt ...

    Wenn es so funktionieren sollte, dann sehe ich aber früher oder später Probleme auf mich zukommen, wenn die Filme in die Hunderte gehen, was auch früher oder später der Fall sein wird, da ich bislang nur einen Bruchteil meiner Sammlung erfasst habe.

    Bei einer solchen Datenmenge ist eine Datenhaltung in JavaScript sicher nicht mehr optimal.
    (Auch wenn es fuer die Datenhaltung selber vielleicht effektiviere Notationen gaebe, Stichwort "Kurz-Schreibweise" fuer Arrays/Objekte, bzw. auch sowas wie JSON.)

    MfG ChrisB