Erik: @file

Ich möchte eine Texdatei auslesen welche folgendermaßen aufgebaut ist:

wort Restliche Worte der Zeile
nocheinwort Und wieder ein Rest
.
.
.

ich möchte nun gerne (und weiss leider überhaupt nicht wie das geht) die Datei auslesen. Das erste Wort einer Zeile soll jeweils an die zu öffnende Datei übergeben werden also z.B:

href="datei.php?kategorie=wort"
und href="datei.php?kategorie=nocheinwort"

insgesamt sollen so viele Links generiert werden, wie die Textdatei Zeilen hat. Für den Linktext sollen die restlichen Worte einer Zeile verwendet werden.

da ich blutiger Anfänger bin wäre es nett mir vielleicht auch zu erklären wie man das was man da übergibt nennt. Sind das arguments? will ja was dazu lernen... :-)

Was muss ich schreiben, dass also mehrere Links erstellt werden? eine "function", richtig? oder array? auwei.... bin für jeden Hinweis dankbar!

  1. insgesamt sollen so viele Links generiert werden, wie die Textdatei Zeilen hat. Für den Linktext sollen die restlichen Worte einer Zeile verwendet werden.

    Lese die Datei Zeile für Zeile aus, trenne das erste Wort ab und schreibe den entsprechenden Text.

    da ich blutiger Anfänger bin wäre es nett mir vielleicht auch zu erklären wie man das was man da übergibt nennt. Sind das arguments? will ja was dazu lernen... :-)

    Wenn überhaupt, dann Argumente. Aber nein, es sind Parameter.

    Was muss ich schreiben, dass also mehrere Links erstellt werden? eine "function", richtig? oder array? auwei.... bin für jeden Hinweis dankbar!

    Ein Anfängerkurs in Programmierung von Schleifen und Bedingungen, zur Nutzung von Variablen und Typen wäre angebrachter, denn anscheinend hast du überhaupt keine Ahnung davon, wie man eine, irgendeine Programmiersprache nutzt. Arbeite http://de.php.net/manual/de/langref.php durch und mache dich allgemein mit der PHP-Anleitung vertraut.

    1. Lese die Datei Zeile für Zeile aus, trenne das erste Wort ab und schreibe den entsprechenden Text.

      <?php
      {$catlist="";
      if($cats=@file("categories.txt")) {
      while($thiscat=array_shift($cats)) list($dirs[],$names[])=explode(" ",$thiscat,2);
      $catlist="<ul>";
      for($i=0;$i<count($dirs);$i++) {
        $categories[$dirs[$i]]=$names[$i];
      $catlist.="<li>" . ($post&&!$menu ? "<input type="checkbox" name="cats[]" value="$dirs[$i]" " . (file_exists($photo_directory . $dirs[$i] . "/" . $image_name . $file_extension) ? "checked="checked"" : "") . " /> " : "") . "<a href="?cat=$dirs[$i]">$names[$i]</a></li>";
      }
      $catlist.="</ul>";
      ?>

      das ist ein auszug aus meinem gallerie-script, die php-datei verwendet die selbe textdatei um eine unordered list zu erstellen. ich hoffe man kann diese schleife so umschreiben, dass sie anstatt
      <li><a href="?cat=Kategoriepfad">Kategoriename</a></li>
      soetwas liefert:
      <a href="photos.php?cat=Kategoriepfad"><img src="Kategoriepfad/Kategoriepfad.jpg"><br />Kategoriename (12)</a>
      (dazu müsste ich lediglich im Kategoriepfad ein Thumbnail mit dem Kategorienamen erstellen)
      auf einige $blabla (Variablen?) habe ich Zugriff, da sie in einer vars.php definiert werden, welche ich includet habe.
      d.h. eigentlich nur: $photo_directory und $file_extension (welche ich nicht direkt zur Lösung meiner Fragestellung benötige, aber eine Funktion welche die Anzahl der Dateien im Kategoriepfad ausgeben soll benötigt auch den Pfad der sich aus $photo_directory&Kategoriename zusammensetzt - meinem ersten Wort je Zeile)

      Ein Anfängerkurs in Programmierung von Schleifen und Bedingungen,zur
      Nutzung von Variablen und Typen wäre angebrachter, denn anscheinend
      hast du überhaupt keine Ahnung davon, wie man eine, irgendeine
      Programmiersprache nutzt.

      Richtig

      Arbeite http://de.php.net/manual/de/langref.php durch und mache dich
      allgemein mit der PHP-Anleitung vertraut.

      ich frag trotzdem nochmal (siehe oben) und danke werd ich tun / tun müssen...

      Wenn überhaupt, dann Argumente. Aber nein, es sind Parameter.

      ok gut

      1. Hello,

        Du solltest hier unbedingt die Ermittlung der Daten und die HTML-Erzeugung voneinander trennen und vor allem eng abgegrenzte Funktionen daraus machen. Das sorgt für gute Übersicht und leichtere Veränderbarkeit.

        Harzliche Grüße aus http://www.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau
        1. ok! Thread ist geschlossen :)

          dank Eurer Hilfe hab ich es (wenns auch nervenaufreibend lange gedauert hat) trotz meiner newbie-skills geschafft!

          also nochmal Vielen Vielen Dank! an ALLE (es liegt zwar mom noch auf dem localhost - aber noch ein bißchen feinschliff ... und bla und blubb... )

  2. Lieber Erik,

    mit der PHP-Anweisung

    meine_Variable = file(Pfad_zur_datei/Datei.Endung);

    erzeugst Du ein Array(!), in dem zeilenweise dein Text enthalten ist, vorausgesetzt, es handelt sich um eine Textdatei (z.B. text/html oder text/php oder text/javascript oder oder).

    Das Array sieht dann so aus:

    meine_Variable (
    [0] => "wort Restliche Worte der Zeile"
    [1] => "nocheinwort Und wieder ein Rest"
    [2] => ...
    .
    .
    .
    [n] => ...

    Das erste Wort einer Zeile soll jeweils an die zu öffnende Datei übergeben werden also z.B:

    Versuchst Du hier eine Datenbank zu "umgehen", indem Du Deine Daten aus einer Textdatei (Flatfile) liest? Kann man machen. Tue ich auch, wenn eine echte Datenbank für diesen Zweck "mit Kanonen auf Spatzen geschossen" wäre.

    href="datei.php?kategorie=wort"
    und href="datei.php?kategorie=nocheinwort"

    Du möchtest an Deine Aufrufe also einen Query-String anhängen?

    insgesamt sollen so viele Links generiert werden, wie die Textdatei Zeilen hat. Für den Linktext sollen die restlichen Worte einer Zeile verwendet werden.

    Geht ja jetzt ganz einfach! Du schreibst eine Schleife, die jede Zeile (also jeden Index Deines Arrays) durchliest und Folgendes damit tut:

    $kategorie = substr($meine_variable[$gefunden], 0, strpos($meine_variable, " ");
    $linktext = substr($meine_variable, strpos($meine_variable, " ")+1);

    echo ('<a href="datei.php?kategorie='.$kategorie.'">'.$linktext."</a>\n";

    da ich blutiger Anfänger bin wäre es nett mir vielleicht auch zu erklären wie man das was man da übergibt nennt. Sind das arguments? will ja was dazu lernen... :-)

    Du interessierst Dich für diesen Link, darin vor allem für den Abschnitt zu $_GET.

    Was muss ich schreiben, dass also mehrere Links erstellt werden? eine "function", richtig? oder array? auwei.... bin für jeden Hinweis dankbar!

    Eine Schleife! Nimm eine for-Schleife, besser noch eine foreach-Schleife (da ja _jedes_ Array-Element verlinkt werden soll).

    Liebe Grüße aus Ellwangen,

    Felix Riesterer.

    1. Hi,

      $kategorie = substr($meine_variable[$gefunden], 0, strpos($meine_variable, " ");
      $linktext = substr($meine_variable, strpos($meine_variable, " ")+1);

      Wozu denn dieer Aufwand?

      $parts = explode(" ", $meine_variable, 2)
      $kategorie = $parts[0];
      $linktext = $parts[1];

      Wobei die letzebn beiden Zeilen ja nicht zwingend sind, wenn man in der Linkerzeugung das Array nutzt.

      1. Hallo Manuel,

        $parts = explode(" ", $meine_variable, 2)
        $kategorie = $parts[0];
        $linktext = $parts[1];

        es geht auch mit einer Zeile:
        list($kategorie,$linktext) = explode(' ',$meine_variable,2);

        Grüße aus Nürnberg
        To*scnr*bias

  3. ich habe schnell eine html-Version meiner index.php hochgeladen (siehe Quelltext), dass man sieht wie ich das bisher gemacht habe... http://contact-sheet.de/index.php.html
    http://contact-sheet.de/index.php <-- so soll es auch mit schleife aussehen.
    ansonsten würde ich mich freuen, wenn mir jemand beim schreiben der schleife behilflich sein könnte...
    Vielen Dank für alle Posts!!!
    jetzt muss ich mich dann aber erstmal über die Grundlagen (eure Links) hermachen (allein schon um die Posts verstehen zu können :-O )
    gruß Erik

    1. Lieber Erik,

      ansonsten würde ich mich freuen, wenn mir jemand beim schreiben der schleife behilflich sein könnte...

      Das kannst Du ganz alleine mit den von mir geposteten Links.

      jetzt muss ich mich dann aber erstmal über die Grundlagen (eure Links) hermachen (allein schon um die Posts verstehen zu können :-O )

      Sehr gute Idee. Meine Links helfen Dir danach erst so richtig weiter!

      Liebe Grüße aus Ellwangen,

      Felix Riesterer.