Mostrando las entradas con la etiqueta archivos. Mostrar todas las entradas
Mostrando las entradas con la etiqueta archivos. Mostrar todas las entradas

martes, 17 de septiembre de 2019

Crear log en archivos PHP y recuperar la información

Crear log en archivos PHP y recuperar la información

Con este método podemos gestionar de forma fácil cualquier log en archivo que deseemos almacenar:

function saveLOG($nombre, $info) {
    $file = fopen($nombre . '_' . date('Y-m-d') . '.txt', 'a');
    fwrite($file, $info . PHP_EOL);
    fclose($file);
}

$nombre es el nombre del archivo. El método le agregaría la fecha actual y le pondría la extensión txt.

$info es la información que deseamos guardar.

Ejemplo de uso:

$info = "$dato1|$dato2|$dato3|$dato4|$dato5|$dato6";
saveLOG('noti_susc.txt', $info);

Aquí hemos separado por el carácter | (pipe) los datos que se encuentras en las variables. También podemos guardar texto literal, o cualquier otro dato tipo texto.

Para leerlo simplemente usamos la función de php fopen:

$f = fopen('noti_susc.txt_2019-09-17.txt', 'r'); // Aquí colocamos el nombre del archivo en el cual guardamos el log o cualquier otro log legible.

while ($l = fgets($f)) {
    if (feof($f)) { // Truco no muy bonito pero efectivo, que al llegar al fin de archivo salga del bucle
        break;
    }

    $aux = explode('|', $l); // Guardamos los datos separados por el carácter | y los separamos
    // Uso de los datos separados
    echo $aux[0] . $aux[1] . $aux[2] . $aux[3] . $aux[4] . $aux[5] . $aux[6]; // Etc. cantidad de variables
}

jueves, 10 de enero de 2019

Buscar contenido en archivos de forma recursiva en Linux


Para buscar cualquier contenido dentro de un archivo y obtener la lista de archivos que coinciden se utiliza:

grep -lir "[TEXTO A BUSCAR]" "PATH"

Ejemplo:
grep -lir "8801202" "/html/apps"

Reemplazar contenido de varios archivos sin conocer el script en Linux


Si no se conoce el script pero se desea reemplazar el contenido de uno o varios archivos se utiliza el comando find de Linux

find PATH -name "*.php" -print | xargs perl -pi -e "s/[TEXTO A BUSCAR][TEXTO A REEMPLAZAR]/g"

PATH es la ruta en el servidor. Si en el texto a buscar y/o texto a reemplazar es una url se deben escapar los caracteres slash. Por ejemplo:

find PATH -name "*.php" -print | xargs perl -pi -e "s/http:\/\/getbootstrap.com\/dist\/css\/bootstrap.min.css/https:\/\/bootswatch.com\/4\/cerulean\/bootstrap.min.css/g"