[PHP]-Text parsing



  • Hallo

    Ich möchte für einen Linkcounter (nennt man das so?) bei jedem klick auf einen Link eine Textdatei öffnen, zur relevanten Stelle springen und ab da einen bestimmten Wert einlesen, inkrementieren und wieder reinschreiben.

    Die Textdatei sieht beispielsweise so aus:

    Index: 439
    Kontakt: 312
    Impressum: 108
    

    Die Zahlen dahinter würden natürlich die Anzahl der Klicks representieren. Was ich mir wünschen würde, wäre etwas wie ffind() oder find() aber naja, man kann ja nicht alles haben. Ich sehe da 2 Möglichkeiten voraus: Zu der Position seeken oder alles komplett einlesen. Nun sind mir die Hände gebunden, seeken geht schlecht, da ich praktisch nach Wörtern "seeken" muss. Alles komplett einlesen wollte ich auch nicht unbedingt, wegen der Ladezeit. Also, gibt es eine Möglichkeit, im File, beispielsweise nach "Index:" zu springen oder muss ich alles in einen Buffer lesen? Und falls eher letzteres, wie sollte ich das angehen? Einfach durchloopen und Elementarisch vergleichen?

    Naja, wäre für einen kompetenten Ratschlag sehr dankbar!

    Btw: Oder wäre eine Datenbank für solche Sachen besser?

    Ich danke wie immer im Voraus!

    Mfg.
    way



  • Hallo,

    sowohl als auch ist möglich! Du kannst den Text der Datei in einen $string laden ( $string = file("meine.datei"); ).

    stringistnachdemEinlesenderDateiein"zeilenweisesArray"string ist nach dem Einlesen der Datei ein "zeilenweises Array" string[0] entspricht Zeile 1
    $string[1] entspricht Zeile 2
    usw. ...

    Danach kannst du die einzelnen Zeilen mit den entsprechenden Funktionen parsen ( explode() // strpos() // strrpos() // strstr() ...) ! Wenn du genau weißt welche Zeile bearbeitet werden soll, ist es sogar noch einfacher, als wen du erst suchen musst!

    Persönlich halt ich aber die Datenbankmethode für die schönere 😃

    LG, Micha


  • Mod

    was passiert wenn 2 leute gleichzeitig auf einen link klicken?



  • darf ich mal fragen wieso das mit einem text-file sein muss?



  • Vor allem verstehe ich den Sinn nicht ... Jeder Provider bietet eine einfache Möglichkeit, die Logfiles vom Webserver einzusehen.

    Die Links sind ja den Namen nach zufolge nicht einmal extern ...



  • árn[y]ék schrieb:

    Vor allem verstehe ich den Sinn nicht ... Jeder Provider bietet eine einfache Möglichkeit, die Logfiles vom Webserver einzusehen.

    Die Links sind ja den Namen nach zufolge nicht einmal extern ...

    Hallo,

    aber aus den gängigen Logfiles (access.log) die Anzahl der Zugriffe pro Seite zu erkennen ist schon mit viel Arbeit verbunden! Das ganze über eine Datenbank etwas sortierter zu gestalten ist langfristig gesehen bestimmt schöner...

    LG, Micha


  • Mod

    RandomAccess85 schrieb:

    aber aus den gängigen Logfiles (access.log) die Anzahl der Zugriffe pro Seite zu erkennen ist schon mit viel Arbeit verbunden!

    deshalb gibts fertige tools...



  • Shade Of Mine schrieb:

    RandomAccess85 schrieb:

    aber aus den gängigen Logfiles (access.log) die Anzahl der Zugriffe pro Seite zu erkennen ist schon mit viel Arbeit verbunden!

    deshalb gibts fertige tools...

    Hallo,

    man lernt doch aber die Sprache nicht wenn man immer wieder auf fertige Tools zugreift. Und je nach Verwendungszweck ist es auch nicht immer sinnvoll auf fertige Sachen zurückzugreifen...

    LG, Micha



  • Hallo

    Danke RandomAccess, dein erster Post hat mir schon etwas geholfen. Jedoch habe ich mich nun für die Datenbank entschieden. Ich hoffe mal das es damit klappt, wenn meine PHP-Skripts mal geparst werden würden...

    Danke.

    Mfg.
    way



  • Hallo,

    Was meinst du mit "geparst werden würden"?

    LG, Micha



  • Hallo

    Naja, es scheint, als würde PHP garnicht erkannt. Auf dem FTP-Server gibt es verschiedene Ordner, u. A. "html"-wo normalerweise der ganze Websseiten-Krempel reinkommt. Wie dem auch sei, HTML-Index angelegt und nen paar Testskripts in die HTML-Tags eingebettet, naja und nix passiert. PHP 4 und 5 werden unterstützt. In der PHPinfo sieht auch alles O.K. aus.

    Beispiel:

    <html>
    <body>
    
    <?php
    	echo "Hallo Welt!";
    	print "Hallo Welt!";
    ?>
    
    </body>
    </html>
    

    Ergebnis:
    Leere Seite. Tjo, egal ob ich die HTML-Tags "<p>" etc. mit in die echoAusgabe schreibe, ess passiert einfach nix.

    Vielleicht hat ja einer ne Idee. Habe mich bereits mit dem Provider-Support in Verbindung gesetzt, doch diese meinten wenn es nichts außergewöhnliches in der phpinfo gäbe und PHP 4 und 5 untersützt würden, müsste es am Skript liegen. Nur dumm das diese Menschen keinen Support auf PHP-Skripte geben (können). Naja, nun bin ich an diesem Punkt.

    Vielleicht kriegt es ja einer heraus (:

    Vielen Dank im Voraus!

    Mfg.
    way



  • .html oder .php



  • Hallo

    Hum, hatte es vorher schon probiert, nun klappt es. Komisch, aber hauptsache es funzt. Vielen Dank!

    Noch was:
    Ich habe in einem Extra-Skript eine Funktion. In der Indexdatei inklduiere ich nun über "include 'xyz.php';" und rufe die Funktion so auf: "print();". Kommt direkt irgendwas mit Parseerror. Anscheinend gefällt ihm die Schleife nach dem print nicht. Wat is dat?

    Danke im Voraus!

    Mfg.
    way



  • heist deien funktion print???

    wenn ja nenn sie um ...



  • Hallo

    Ich weiss nicht ob ich lachen oder weinen soll... läuft, danke!

    Mfg.
    way


Anmelden zum Antworten