2009-07-28 15 views
5

Quiero registrar el número de visitas a las páginas y estoy pensando en el almacenamiento sencillo basado en archivos o SQLite.¿La mejor práctica para grabar visitas de página usando PHP?

opción
Un archivo incluye solamente un entero incrementado con cada visita de la página y cada página tiene un nombre de archivo único basado en archivos. Si abro un archivo usando un modo, puedo escribir, pero ¿es posible no cerrarlo para poder guardarlo al abrir y cerrar el archivo cada vez?

opción SQLite
Una sencilla tabla con columnas PageName y le pega. La misma pregunta nuevamente ¿es posible no cerrarla para ahorrar al abrir y cerrar el db cada vez?

Respuesta

4

Si realmente tiene que hacer esto en la empresa, debe usar el método sqlite. Si bien hay una pequeña sobrecarga (debido a la apertura del archivo de base de datos), también puede haber beneficios notables en el almacenamiento de datos estructurados.

Podría, por ejemplo, agregar un campo de fecha, y luego obtener datos diarios/por hora/mensuales/cualesquiera para cada página.

También puede agregar la dirección IP de cada visitante y luego extraer los datos de visitas. De esta forma, podría extraer fácilmente datos sobre el comportamiento de los usuarios de su sitio.

También puede almacenar el agente de usuario y el sistema operativo de sus visitantes, para que sepa a qué navegadores debe dirigirse o no.

Con todo, insertar ese tipo de datos en una base de datos es trivial. Puede aprender muchas cosas a partir de estos datos, si se toma un tiempo para estudiarlos. Por esa razón, las bases de datos suelen ser el camino a seguir, ya que son fáciles de manipular.

+1

No es que creo que esta es una mala respuesta, pero realmente me gustaría que la gente esperara 24 horas antes de seleccionar una respuesta. – Imagist

8

Google Analytics. A menos que necesite para hacerlo en la empresa.

Rodar su propia solución en PHP puede ser tan simple o complicado como desee. Puede crear una tabla para almacenar la dirección IP (no siempre confiable), la ubicación de la página y una fecha. Esto le permitirá rastrear éxitos únicos para cada día. Es posible que desee programar una tarea para reducir la cantidad de registros a una fila simple de date, numOfUnique.

Otro método es analizar sus archivos de registro. Puedes hacer esto cada 24 horas más o menos también.

+0

De acuerdo, uso preferible javascript hit counter de terceros. Consulte Piwik - http://piwik.org/ que es un excelente reemplazo para Google Analytics, si no utiliza AdWords y tal. – Stojg

0

No es posible en ninguno de sus casos. Las aplicaciones PHP se ejecutan cuando el usuario solicita algo de ellas, generan el resultado y luego se apagan. Entonces, incluso si no cierra la conexión de db o archivo, se cerrarán automáticamente. Pero no sé por qué abrir un db connection o un archivo para escribir sería un problema.

+0

¿Las cosas de DB en PHP no usan el procesamiento en segundo plano del tiempo de ejecución de PHP en Apache para mantener las cosas abiertas (es por eso que son módulos instalados en el servidor)? Parece excesivo cerrar recursos que se comparten entre páginas/usuarios. –

0

Es difícil dar respuestas particularmente útiles en ausencia de la cantidad de tráfico que está esperando (aparte del comentario de Jonathan Sampson de que tal vez sea mejor usar Google Analytics).

opción basada en archivos:

no creo que es posible mantener el archivo abierto. Además, es probable que se encuentre con problemas de escritura concurrentes a menos que emplee algún tipo de mecanismo de bloqueo.

opción SQLite:

Creo que este es probablemente el camino a seguir, si no lo ha conseguido una base de datos abierta. Dudo que abrir/cerrar la base de datos sea un cuello de botella cada vez. Inténtalo y perfil.

Cuestiones relacionadas