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..
flyttar upp tråden lite.. ;)
SPiNMedlem sedan mars 20007 896 inlägg <?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.
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..
SPiNMedlem sedan mars 20007 896 inlägg 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... :)
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.. :(
Gör din sida sämre :P Du är för populär :)
SPiNMedlem sedan mars 20007 896 inlägg 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?
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å..
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.