La finalidad es crear un reporte en este archivo de las paginas que se cargar guardando en cada linea los datos básicos. ( De momento ).
$url | $fecha | contador
El siguiente código en primer lugar lee el archivo de texto si no está lo crea. El archivo se denomina a si mismo con la fecha actual.
Luego hace una comprobación linea a linea donde busca la cadena de texto de esta variable que recoge su valor de
$_SERVER['HTTP_REFERER'];
si no existe añade una linea al archivo txt con el valor del contador cero
pero en caso de existir debe sumarle a la linea en cuestión 1 al valor del contador
¿ Como modificar esa linea exclusivamente o que solución adoptar para solucionar el problema ?
¿Alguien me puede ayudar?
Os dejo parte del código de pruebas aquí en la parte central destaco donde deberia ejecutarse el proceso que responde a esta duda. Solucionado espero que pueda serviros de referencia.
Código:
<?php // en este caso no defino ningun directorio vale? es una prueba define('DIR_LOG', ''); // definimos SERVER variables están aquí por que las utilizaré luego $get_idioma = $_SERVER['HTTP_ACCEPT_LANGUAGE']; // Nos informa principalmente sobre el sistema operativo y tipo y versión de navegador $get_navegador = $_SERVER['HTTP_USER_AGENT']; // Nos devuelve la o las abreviaciones de la lengua considerada como principal por el navegador $get_url_ref = $_SERVER['HTTP_REFERER']; // Nos indica la URL desde la cual se accede a la página $get_url_actual = $_SERVER['PHP_SELF']; // Nos devuelve una cadena con la URL del script que está siendo ejecutado $get_ip = $_SERVER['REMOTE_ADDR']; // nos muestra la ip $get_path = $_SERVER['DOCUMENT_ROOT']; // Nos devuelve el path físico en el que se encuentra alojada la página en el servidor $get_session = $_SERVER['PHPSESSID']; // Guarda el identificador de sesión del usuario. Veremos más adelante en qué consisten las sesiones. $get_host = $_SERVER['HTTP_HOST']; // Nos indica la URL de la página actual $get_fecha = date('Y-m-d'); // reporta la fecha actual para darle nombre al archivo txt /* convierte cadenas de texto a minúsculas ( solo las de este ejemplo ) */ $get_url_actual=strtolower($get_url_actual); /* establezco el valor del contador */ $count = 0; /* quita los espacios en blanco a los lados de la cadena de texto */ $get_url_actual=trim($get_url_actual); /* reemplazo los saltos de carro por la etiqueta <br> */ $get_url_actual=eregi_replace("<br>","<br>",$get_url_actual); echo "ha visitado la página: ".$get_url_actual."<br>"; echo "proviene de: ".$get_url_ref."<br>"; echo "en fecha de: ".$get_fecha."<br>"; echo "Su navegador es: ".$get_navegador."<br>"; echo "País/idioma: ".$get_idioma."<br>"; echo "IP indenticador: ".$get_ip."<br><br><br>"; // nombre del fichero de paginas $archivo_pag = DIR_LOG.$get_fecha.".txt"; // lee el fichero si no existe lo crea if ( ! fopen($archivo_pag, "a+")) { echo "El archivo no se puede abrir\n"; } else { // lo primero seria comprobar si la url de la página ya existe $archivo = file($archivo_pag); //creamos el array con las lineas del archivo $lineas = count($archivo); //contamos los elementos del array, es decir el total de lineas for($i=0; $i < $lineas; $i++){ $archivo[$i] = str_replace('<META','<META',$archivo[$i]); $archivo[$i] = str_replace('">','">',$archivo[$i]); $campo=explode("|",$archivo[$i]); echo $archivo[$i]; echo "<br>"; // comprobamos si existe la url actual dentro de la cadena de texto // si existe damos el valor 1 a la variable search y la linea del array de su posicion ereg($get_url_actual, $archivo[$i]); if(ereg($get_url_actual, $archivo[$i] )) { $search = 1 ; $linea = $i; $cadena = $archivo[$i]; $value_count = $campo[2]; $new_value_count = $value_count+1; $datos .= "$get_url_actual|$get_fecha|$new_value_count|\n"; } } if( $search == 1 ) { // A Q U I E S D O N D E D E B E R I A M O S M O D I F I C A R L A L I N E A // insertando una nueva con el valor de la cadena $datos // esa es la cuestion ¿ Como hacerlo ? // echo "<p>se ha encontrado la cadena $get_url_actual en el archivo </p>"; echo "<p>cadena: $value_count</p>"; } else { // si no existe creamos una linea nueva echo "<p>NO se ha encontrado la cadena $buscar en la cadena </p>"; // si no existe creamos la nueva linea $datos .= "$get_url_actual|$get_fecha|$count|\n"; $archivo = fopen($archivo_pag, "a"); fputs($archivo, $datos); fclose($archivo); /* se cierra el archivo */ } } ?>