2009-07-28 12 views
5

Desidero registrare il numero di accessi alle pagine e sto pensando sia all'archiviazione basata su file che a quella SQLite.Le migliori pratiche per registrare gli hit delle pagine usando PHP?

opzione
Un file include solo un intero incrementato con ogni pagina visita e ogni pagina ha un nome di file univoco basato su file. Se apro un file utilizzando la modalità a, posso scrivere ma è possibile non chiuderlo per salvare ogni volta dall'apertura e chiusura del file?

opzione SQLite
Una semplice tabella con le colonne PageName e colpisce. La stessa domanda è di nuovo possibile non chiuderla per salvare dall'apertura e chiusura del db ogni volta?

risposta

4

Se davvero devi fare questo in-house, dovresti usare il metodo sqlite. Mentre c'è un piccolo sovraccarico (dovuto all'apertura del file di database), ci possono essere anche notevoli benefici nella memorizzazione dei dati strutturati.

Si potrebbe ad esempio aggiungere un campo data, e quindi ottenere ogni giorno/ora/mese/qualsiasi dato per ogni pagina.

È inoltre possibile aggiungere l'indirizzo IP per ciascun visitatore e quindi estrarre i dati delle visite. In questo modo puoi facilmente estrarre i dati relativi al comportamento degli utenti del tuo sito.

È anche possibile archiviare l'agente utente e il sistema operativo dei visitatori, in modo da sapere quali browser si dovrebbero scegliere o meno.

Tutto sommato, l'inserimento di questo tipo di dati in un database è banale. Puoi imparare molte cose da questi dati, se ti prendi del tempo per studiarli. Per questo motivo, i database sono di solito la strada da percorrere, dal momento che sono facili da manipolare.

+1

Non penso che questa sia una cattiva risposta, ma vorrei davvero che la gente aspetterebbe 24 ore prima di selezionare una risposta. – Imagist

8

Google Analytics. A meno che tu non abbia bisogno diper farlo internamente.

Il rollover della propria soluzione in PHP può essere semplice o complicato come preferisci. È possibile creare una tabella per memorizzare l'indirizzo IP (non sempre affidabile), l'ubicazione della pagina e una data. Questo ti permetterà di tracciare hit unici per ogni giorno. Si consiglia di pianificare un'attività per ridurre la quantità di record in una riga semplice di date, numOfUnique.

Un altro metodo è l'analisi dei file di registro. Potresti farlo ogni 24 ore circa.

+0

Accetto, utilizzare preferibilmente contatore di hit di javascript di terze parti. Consulta Piwik - http://piwik.org/ che è un eccellente sostituto di Google Analytics, se non utilizzi AdWords e così via. – Stojg

0

Non è possibile in nessuno dei casi. Le applicazioni PHP vengono eseguite quando l'utente richiede qualcosa da loro, generano il risultato e quindi si spengono. Quindi, anche se non si chiude la connessione o il file db, verranno chiusi automaticamente. Ma non so perché aprire la connessione db o un file da scrivere sarebbe un problema?

+0

La roba del database in PHP non utilizza l'elaborazione in background del runtime PHP su Apache per mantenere le cose aperte (ecco perché sono moduli installati sul server)? Sembra quasi eccessivo chiudere le risorse condivise tra pagine e utenti. –

0

È difficile fornire risposte particolarmente utili in assenza di quanto traffico ci si aspetta (a parte il commento di Jonathan Sampson che potrebbe essere meglio utilizzare Google Analytics).

opzione basata su file:

Non credo che sia possibile mantenere il file aperto. Inoltre, probabilmente si incontreranno problemi di scrittura simultanei a meno che non si impieghi un qualche tipo di meccanismo di blocco.

opzione SQLite:

Penso che questa è probabilmente la strada da percorrere, se non hai già un database aperto. Dubito che aprire/chiudere il db ogni volta sarà un collo di bottiglia: provalo e profilalo.

Problemi correlati