PHP – Leer contenido varios ficheros
Respondiendo a un comentario en un artículo anterior para listar los ficheros de una carpeta en PHP, ampliamos el código PHP para leer contenido de varios ficheros.
Por lo pronto, aquí tenéis el código que recorre una carpeta, mira si es un fichero o carpeta lo que lee, y si es fichero, lo lee y lo va almacenando en una string. En este caso, este código está en un fichero index.php que lee los ficheros que contiene una carpeta /content/
<?php
function unirContenidosFicheros( $path ){
$unioncontenidos= "";
echo "<h1>Leyendo ficheros de una carpeta:</h1>";
// Abrimos la carpeta que nos pasan como parámetro
$dir = opendir($path);
// Leo todos los ficheros de la carpeta
while ($elemento = readdir($dir)){
// Tratamos los elementos . y .. que tienen todas las carpetas
if( $elemento != "." && $elemento != ".."){
// Si es una carpeta
if( is_dir($path.$elemento) ){
// Muestro la carpeta
echo "<p><strong>CARPETA: ". $elemento ."</strong></p>";
// Si es un fichero
} else {
// Con este proceso leemos el fichero
$fp = fopen($path.$elemento, "rb");
$unioncontenidos .= fread($fp, filesize($path.$elemento));
fclose($fp);
echo "<br />". $elemento;
}
}
}
// Mostramos el resultado final
echo "<h2>Resultado final</h2><pre><code>". $unioncontenidos ."</code></pre>";
}
unirContenidosFicheros("./content/");
?>
Si os fijáis, leemos todos los contenidos de la carpeta /content/ y si es fichero, lo leemos y lo almacenamos en la variable $unioncontenidos. Para leer el fichero utilizamos dos funciones, el fopen, para abrir fichero y el fread para leerlo. En ésta última función le pasamos el fichero abierto, y la medida de éste (conseguida con la función filesize).
Este proceso en PHP de leer el contenido de varios ficheros, es válido para formatos como .html o .txt. Sin embargo, en el caso de utilizar según que formatos de ficheros, no podremos utilizar la función fread, y deberemos utilizar otras funciones que más abajo os dejamos en forma de enlace para que os informéis.
Otra cosa, al mostrar el resultado por pantalla, si lo que mostráis en contenido html, éste lo interpretará el navegador. Vamos que en la variable $unioncontenido lo tendréis todo, pero al mostrarlo, el navegador lo interpreta y no se mostrará. Para ver si ha ido correctamente, deberéis ver el código fuente de la pàgina para comprobar que está al 100%.
Espero que os sea de utilidad.
Más información
Muy buen tuto como puedes visualizar o ver el contenido de cada texto dentro de una tabla que genera varios archivos esa carpeta s la carpeta contiene 10 archivos con nombres distintos como puedes ver cada archivo con un botón y que no sea base datos