You don’t speak Spanish? Explore a selection of Blogpocket posts in English

Escribiendo en archivos desde PHP

Sigue este blog en Mastodon

Este blog está federado, por lo que si lo sigues desde tu servidor de Mastodon, verás todo lo que se publica aquí en tu timeline de inicio. Escribe en la caja de búsqueda de tu app de Mastodon la URL https://www.blogpocket.com/author/antonio

Este post es continuación de Limpieza de links erróneos: codificando un PHP, Ejecutando consultas de MySQL desde PHP y Leyendo un archivo desde PHP

En el anterior post de esta serie, en la que estamos construyendo un script que nos sirva para eliminar links erróneos (o sustituirlos por otros correctos), veíamos cómo leer una archivo, por ejemplo con todos esas URLs que hay que modificar. Eso nos permite automatizar el proceso de modificación de las entradas de la base de datos que contienen dichos links incorrectos.

Lo que nos ayudaría también es poder crear otro archivo de salida con aquellas URLs que no han sido modificadas, por cualquier razón, bien porque no se hayan encontrado en la base de datos o bien porque falló la actualización. Así iremos filtrando los links hasta que ese archivo de salida esté vacío o lo que es lo mismo ¡habremos limpiado todos los links!.

[php]
<?php
$file = file("entrada.txt");
$fp = fopen("salida.txt","a");
$contador_registros=0;
foreach ($file as $fila)
{
$linea = eregi_replace("[\n|\r|\n\r]", "", $fila);
fwrite($fp, $linea . PHP_EOL);
$contador_registros++;
}
echo "Numero de registros del archivo = ".$contador_registros;
fclose($fp);
?>
[/php]

Este script solo se diferencia del que vimos en la entrada anterior en que los registros leídos se graban en otro archivo, en lugar de mostrarlos en pantalla mediante la instrucción «echo».

El archivo de salida no se crea «de golpe» sino que lo vamos construyendo, línea a línea, a medida que recorremos todas los registros del archivo de entrada.

La función fopen abre un fichero para su lectura o escritura. La forma de acceso se determina, en este caso, con el valor «a» en el segundo parámetro (en el primer parámetro indicamos el nombre del archivo). Este modo de apertura significa que el archivo se abre solo para su escritura; coloca el puntero al fichero al final y si no existe se intenta crear. Esto último depende de la configuración del servidor y de los permisos tanto de la carpeta que lo contiene como del propio fichero. Lo mejor es crear el archivo en vacío y asignarle permiso de escritura «777».

Con el modo «a», sucesivas ejecuciones del script irán añadiendo resultados al archivo de salida. Si eso no nos interesa, pondremos modo «w» que coloca el puntero al fichero al principio del fichero y lo trunca a longitud cero.

La escritura de cada línea leída se realiza con la función fwrite. El primer parámetro es el archivo de entrada, en este caso se indica con la variable $fp, resultado de la función «fopen». El segundo parámetro es el registro a escribir que, como se puede observar, lleva el sufijo PHP_EOL que corresponde al símbolo ‘Fin De Línea’ correcto de la plataforma en uso (disponible desde PHP 4.3.10 y PHP 5.0.2).

Para concatenar la línea a escribir (contenida en la variable $linea) y el salto de línea (PHP_EOL) se utiliza el punto «.».

Finalmente, la función fclose cierra un puntero a un archivo abierto.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Información básica sobre protección de datos Ver más

  • Responsable: Antonio Cambronero.
  • Finalidad:  Moderar los comentarios.
  • Legitimación:  Por consentimiento del interesado.
  • Destinatarios y encargados de tratamiento: No se ceden o comunican datos a terceros para prestar este servicio. El Titular ha contratado los servicios de alojamiento web a GreenGeeks que actúa como encargado de tratamiento.
  • Derechos: Acceder, rectificar y suprimir los datos.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Ir al contenido