webForumDet fria alternativet

Skriva till diverse platser i textfiler..

PHP

7 svar · 316 visningar · startad av Matti

Medlem sedan dec. 19996 592 inlägg
Frågan#1

Hm.. jag har gjort en liten statistik sida eller vad man nu ska kalla det för på min hemsida som skriver alla $http_referers till en textfil.. nu är det ju så att ofta har referrern samma adress (om besökaren kommer från tex. altavista) och då blir det ju onödigt många likadan textrader.. så jag undrar om det på något sätt skulle gå att göra så att raderna i textfilen skulle se ut typ så här:
http://www.blabla.com/test.html -- 50
http://www.yahoo.se/links.html -- 30
http://www.webforum.nu/inlagg.html --12

..där siffran skulle motsvara antalet besökare från den specifika adressen. Jag har inte tillgång till någon databas.. går det att göra med en textfil?

------------------
Startin' the new revolution

[Redigerat av Matti den 26 jul 2000]

Medlem sedan apr. 20003 971 inlägg
#2

Läs in hela filen med file() och gå igenom den rad för rad.

------------------
 - Swey
Projekt wF PHP

Medlem sedan dec. 19996 592 inlägg
#3

Ok.. vet hur man läser in filen.. men sen då? Exempel? ;)

/me fattar 0 annars..

------------------
Startin' the new revolution

[Redigerat av Matti den 26 jul 2000]

Medlem sedan apr. 20003 971 inlägg
#4

Ungefär så här. Resten får du skriva själv ;)

// Läs in
$file = file("matti.txt");

// Ändra
foreach( $file as $line)
{
if($line = $adress)
...
}
// Om den inte finns
$file[] = "$adress - 1";

// Spara
$fp = fopen("matti.txt", "w");
foreach( $file as $line)
fwrite($fp, $line);
fclose($fp);

------------------
 - Swey
Projekt wF PHP

Medlem sedan dec. 19996 592 inlägg
#5

Hmm.. snurrigt.. men jag ska försöka.. :e

------------------
Startin' the new revolution

Medlem sedan dec. 19996 592 inlägg
#6

men hm.. hur ändrar jag talet efter adressen.. *dum* ;)

------------------
Startin' the new revolution

Medlem sedan feb. 20001 050 inlägg
#7

Så här kanske :)

<?
// counter.php3 ::: [url="http://www.nic-sys.se"]www.nic-sys.se[/url] 
$countfile = "sökväg/count.txt";
$url=$HTTP_REFERER;
$written=FALSE;
if (file_exists($countfile)){
  $temparray = file($countfile);
  for($index = 0; $index < count($temparray); $index++){
    $entry = explode(" ",$temparray[$index]);
    if(!strcmp($entry[0],$url)){
      $entry[2]++;
      $tempentry = $entry;
      $temparray[$index] = implode($entry," ");
      $fp = fopen($countfile,"w");
      for($index = 0; $index < count($temparray); $index++)
        fputs($fp,$temparray[$index]);
      $written = TRUE;
      fclose($fp);
    }
  }
  if($written == FALSE){
    $entry = "$url -- 1 <br>\n";
    $fp = fopen($countfile,"a");
    fputs($fp,$entry);
    fclose($fp);
  }
}else{
  exit("Fel: $countfile saknas!");
}
?>

Testsida:

<html>
<body>
Count file:<br>
<? include "counter.php3" ?>
<? include "count.txt" ?>
</body>
</html>

Filen count.txt skall vara tom och skrivbar!

/nicclas @ http://www.nic-sys.se

[Redigerat av nicclas den 26 jul 2000]

Medlem sedan dec. 19996 592 inlägg
#8

muhaha! :e
nicclas, du knäcker! ;)

Tack :)

------------------
Startin' the new revolution

263 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)