Lectura de archivos de texto con PHP. Realizamos la apertura de un archivo de texto del servidor y recorremos su contenido realizando modificaciones sobre el texto, usando las funciones fopen y fgets de PHP.
Sigamos con nuestro aprendizaje práctico del uso de ficheros en el manual de gestión del sistema de archivos con PHP. Ya hemos visto cómo abrir un archivo por medio de la función fopen con un ejemplo práctico de cómo verificar una URL. El paso siguiente es aprender a leer el contenido del archivo, tarea que llevaremos a cabo por medio de la función fgets
.
Esta función se encarga de leer línea a línea el contenido de un archivo texto por lo que su utilización ha de ser incluida dentro de una estructura de tipo bucle. Realizaremos una práctica para que quede bien claro.
Ejemplo de lectura de un archivo con PHP
En el ejemplo que os mostramos a continuación nos hemos servido de esta lectura secuencial para localizar dentro del texto una cadena cualquiera a la que, a continuación, le cambiamos el formato para ponerla en negrita por medio de la etiqueta <b>
. Esto nos puede resultar útil si llevamos a cabo búsquedas internas en nuestro sitio y queremos resaltar la cadena de búsqueda en el texto de la página encontrada.
Evidentemente, la utilidad de fgets
resulta ser mucho más amplia. Podemos emplearla, por ejemplo, con archivos remotos para extraer las etiquetas meta o para muchas otras cosas que se nos puedan ocurrir.
Aquí os proponemos el script:
<?php
function negrita($path, $cadena)
{
//Iniciamos la variable
$text = '';
//Abrimos el archivo en modo lectura
$file = fopen($path, 'r');
if($file) {
//Leemos linea por linea el contenido del archivo
while ($linea = fgets($file, 1024)) {
//Sustituimos las ocurrencias de la cadena que buscamos
$linea = str_replace($cadena, "<b>$cadena</b>", $linea);
//Anadimos la linea modificada al texto
$text .= $linea;
}
return $text;
}
return '';
}
//Definimos el path y la cadena a buscar
$path = './texto/lorem.html';
$cadena = 'lorem';
//Llamamos la funcion
$texto = negrita($path, $cadena);
//Mostramos el texto
echo $texto;
?>
El script es utilizado en forma de función para facilitaros su empleo y reutilización. Su modo de actuar es el siguiente:
- Inicializa la variable texto en la cual iremos almacenando las líneas leídas en el bucle.
- Abre el archivo (local o remoto) en modo lectura por medio de la función
fopen
. - Lee una por una las líneas del archivo hasta una longitud de 1024 caracteres y remplaza las posibles ocurrencias de la cadena de búsqueda por la misma cadena colocada entre las etiquetas
<b>
y</b>
por medio de la funciónstr_replace
. - El texto, modificado o no, es almacenado en la variable
texto
. Finalmente, devolvemos la variable texto como resultado de la función.
El resto de script es simplemente un ejemplo de llamada a la función donde los parámetros path
y cadena
han de ser especificados.
Rubén Alvarez
Rubén es doctor en química y programador principalmente en sus ratos libres con...