Webmaster > PHP
Contador de visitas
(1/1)
Rober:
Buenas,
Me gustaría saber si se podría obtener a través de PHP información de estadísticas del sitio web alojado, ya que se tiene se dispone webanalizer y de analog desde el cpanel, o habría que realizar a mano dichas estadísticas.
Un saludo y gracias
Skiros:
Hola, estamos en servicios mínimos una semana, te responderán a este mensaje a partir del día 1 de febrero.
Gracias por tu paciencia.
Saludos.
shakaran:
Hola y bienvenido Rober,
Es posible obtener información de las estadísticas de tu sitio a través de php. Para cPanel, las estadísticas como bien has comentado se administran con webanalizaer y analog. Normalmente estas estadísticas son alojadas en el propio directorio del usuario (en un directorio privado) que suele ser:
~/tmp/webalizer
Es decir, /home/tuusuarioquijost/tmp/webanalizer.
Por lo tanto, sólo necesitas programar un script php que lea, procese y analice dichos datos para mostrarlos en el lugar y la forma que desees.
Para facilitarte la tarea, te proponemos el siguiente script rápido (aunque es básico y podrías mejorarlo aún mas) que muestra los archivos de webanalizer tanto si son .png o .html:
--- Código: ---<?php
$user = 'nombreusuario'; # usuario de cpanel quijost
$pass = 'contraseña'; # contraseña de cpanel quijost
$url = 'tudominio.com o tudominio.quijost.com'; # no incluir 'http://'
# Obtener los archivos de webalizer, .html o .png
function getFile($file)
{
global $user, $pass, $url;
return file_get_contents('http://' . $user . ':' . $pass . '@' . $url . ':2082/tmp/' . $user . '/webalizer/' . $file);
}
# Alterar y corregir los enlaces para .html y .png
function changeLinks($subject, $type)
{
return preg_replace("/($type=")(?!http)(.*?)"/is","$1$PHP_SELF?$2", $subject);
}
if(!empty($_SERVER['QUERY_STRING']))
{
# Obtener el archivo si es .png o .html
$page = getFile($_SERVER['QUERY_STRING']);
#Si es png, alterar el encabezado
if(strpos($_SERVER['QUERY_STRING'],'.png') !== false)
header("Content-type: image/png");
# Cambiar el src de los .png
else $page = changeLinks($page, 'src');
}
else
{
$page = getFile('index.html'); # Obtener el index
$page = changeLinks($page, 'href'); # Cambiar enlaces
$page = changeLinks($page, 'src'); # Cambiar el src de .png
}
# Mostrar los datos
echo $page;
--- Fin del código ---
Rober:
Buenas,
Gracias por responder tan rápido.
He probado el código que pusiste como ejemplo, y cuando se ejecuta aparece un error del tipo: Warning: fopen() [function.fopen]: http:// wrapper is disabled in the server configuration by allow_url_fopen=0 [...] .
No estoy muy seguro (acabo de empezar con PHP), pero creo que para poder utilizar la función file_get_contents debería estar habilitada la opción allow_url_fopen, ¿estoy confundido?, y por lo que parece, está deshabilitada.
¿Se puede habilitar la opción allow_url_fopen para que funcione? ¿O existe otra manera para poder usar las estadísticas?
Un saludo y muchas gracias.
Rober:
Hola de nuevo,
Navegando por ahí, encontré la solución...y parece que funciona. La solución es usar las librerías curl de PHP. Aquí pongo un código de ejemplo para leer una url (equivalente al function getFile($file)):
--- Código: ---<?php
$ch = curl_init();
$timeout = 5; // set to zero for no timeout
curl_setopt ($ch, CURLOPT_URL, 'http://example.com');
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$file_contents = curl_exec($ch);
curl_close($ch);
// display file
echo $file_contents;
?>
--- Fin del código ---
Os dejo el enlace ****** donde podéis obtener más informaición.
Saludos y gracias por todo.
Editado: no permitimos vincular a competencia de terceros. De todas formas el mejor enlace de curl de php es la propia documentación de php http://php.net/manual/es/book.curl.php
Navegación
Ir a la versión completa