Fehler bei "Wie oft wurde Link angeklickt?"
mac
- php
Hallo und frohe Weihnachten,
ich habe eine txt-Datei, wo steht, wie oft ein Link geklickt wurde. In der Datei steht z.B. folgendes:
http://link1.de/pfad $ 3
http://link2.de/pfad $ 7
http://link3.de/pfad $ 5
Jetzt möchte ich den Permalink ($plink) mit der URL in der txt-Datei vergleichen. Wenn sie übereinstimmen, soll die Zahl nach dem $-Zeichen ausgegeben werden. Leider erkennt bei meinem Code-Beispiel fgets den Zeilenumbruch (das Zeilenende) nicht, und gibt lückenlos Alles aus. Zum Beispiel steht dann nicht:
"Dieser Link wurde 7 mal angeklickt."
sondern
"Dieser Link wurde 3 mal angeklickt. Dieser Link wurde 7 mal angeklickt. Dieser Link wurde 5 mal angeklickt."
$datei = ($_SERVER['DOCUMENT_ROOT']."clickcounter/data/count.txt");
$userdatei = fopen($datei,"r");
while(!feof($userdatei))
{
$zeile = fgets($userdatei);
$zeile = explode(" $ ", $zeile);
if ($plink = $zeile[0]) {
echo „Dieser Link wurde“.$zeile[1]."mal angeklickt";
}
}
fclose($userdatei);
Gruß
mac
$zeile = explode(" $ ", $zeile);
Das $ muss maskiert werden, da es eine Sonderbedeutung hat, wenn ich das richtig im Kopf hab, das Ende der Zeile
Nachtrag: eigentlich sollte es eine Fehlermeldung geben, da eine leere Variable ($ ohne String dahinter) zumindest ein Notice werfen müsste. Ist ja hier kein RegExp, war auf preg_split()
Alternativ wäre ein ' $ ' hilfreich, zusätzlich zu dem, was ChrisB geschrieben hat.
Ich danke euch, jetzt klappt es!
Gruß
mac
Hi,
Leider erkennt bei meinem Code-Beispiel fgets den Zeilenumbruch (das Zeilenende) nicht,
Doch, das Zeilenende dürfte sehr wohl erkannt werden.
und gibt lückenlos Alles aus.
Daran, dass *alles* ausgegeben wird, hätte dir auffallen sollen, dass es am Zeilenumbruch nicht liegen kann -
if ($plink = $zeile[0]) {
MfG ChrisB