webForumDet fria alternativet

Textfil till statistik

PHP

10 svar · 309 visningar · startad av Niklasson

Medlem sedan nov. 2000857 inlägg
Frågan#1

Jag har äntligen lärt mig hur man skriver och läser ut textfiler. ett litet problem dock..

Jag testar en statistikgrej. textfilen fylls på efterhand med ett användarid, en timestamp och ett ip-nummer på varje rad.
ex: 210|1028698678|127.0.0.1

Hur skall jag visa statistik per dygn för ett visst id?
Jag har testat med file() och lite foreach() och for() men det vill sig inte..

Medlem sedan nov. 2000857 inlägg
#2

flyttar upp tråden lite.. ;)

Medlem sedan mars 20007 896 inlägg
#3
<?php
$fileArray = file( "dinTextFil.txt" );

foreach( $fileArray as $fileLine ) {
     $lineArray = explode( '|', $fileLine );

     $id[] = $lineArray[ 0 ];
     $timestamp[] = $lineArray[ 1 ];
     $ip[] = $lineArray[ 2 ];
}

for( $i = 0; $i < count( $id ); $i++ ) {
     for( $n = 0; $n < count( $id ); $n++ ) {
          if( $id[ $i ] == $id[ $n ] ) {
               echo "ID: " . $id[ $n ] . "<br />";
               echo "Timestamp: " . $timestamp[ $n ] . "<br />";
               echo "IP: " . $ip[ $n ] . "<br /><br />";
          }
     }
}

Var det något sånt du hade tänkt dig?

Sån här typ av applikation bör du använda en databas till, det gör allting mycket, mycket lättare och snabbare. Textfiler suger.

Medlem sedan nov. 2000857 inlägg
#4

Skall testa koden imorgon.. :)

Jag har det i en databas idag, men saken är att mitt webbhotell klagar för att jag belastar mySQL för mycket.

Vet du nåt annat sätt jag kan göra för att dra ner belastningen? Jag reagerade själv på det, eftersom jag har ett ganska lågt besökarantal om man jämför med de riktigt stora sidorna. Jag ligger på 4000 unika om dagen under terminerna och hälften nu under sommarlovet.

Jag använder persistens connections..

Medlem sedan mars 20007 896 inlägg
#5

Tro mig, en textfil som ska öppnas och stängas flera tusen gånger om dagen belastar servern mer än vad en databaskoppling mot MySQL-servern gör. Säg det till ditt webhotell... :)

Medlem sedan nov. 2000857 inlägg
#6

Okej. Men hur fasen kan vi fixa ner belastningen på servern då?

Jag har idag 2000 besökare om dagen och servern (databaserna) är tokbelastad. Visserligen har jag bannerexchanges och räknartjänsten men jag fattar inte att det skall ta så mycket resurser när jag har persistent connections och de tjänsterna ställer ju inte så himla många querys varje gång.. :(

Medlem sedan maj 2002647 inlägg
#7

Gör din sida sämre :P Du är för populär :)

Medlem sedan mars 20007 896 inlägg
#8

Kanske du har möjlighet att baka in två SQL-frågor till en enda på ett par ställen? Och du försöker väl aldrig stänga en persistant koppling?

Medlem sedan nov. 2000857 inlägg
#9

Webslave skrev:

Gör din sida sämre :P Du är för populär :)

Inget bra alternativ ;)

Medlem sedan nov. 2000857 inlägg
#10

SPiN skrev:

Kanske du har möjlighet att baka in två SQL-frågor till en enda på ett par ställen? Och du försöker väl aldrig stänga en persistant koppling?

Nej, det blir nog svårt. Får kolla igenom alla scripts och se om det går..
Nej, jag försöker inte stänga några kopplingar. Jag har fyra databaser och därför borde det, enligt min ringa mening, aldrig behövas fler än fyra databaskopplingar öppna. Kanske är jag naiv när jag tänker så..

Medlem sedan nov. 2000857 inlägg
#11

phpinfo() visade att "Active Persistent Links" var fyra. Då fungerar i alla fall den biten, får kolla på antal querys och se om det går att minska dem på nåt sätt.

257 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)