Hace poco he empezado el estudio de PHP y luego de un tiempo empecé un pequeño proyecto, pero sucede que no responde como esperaba y no logro encontrar la causa.
Se trata de 2 archivos php, uno lee el contenido de una carpeta y lo muestra, y el otro, ubicado dentro de la carpeta mencionada, abre uno a uno los archivos TXT y lee la primera línea. Nada complicado.
El código del primer archivo es el siguiente
directorio.php
Código PHP:
<?php
$directorio = opendir("./txt"); //ruta actual
$filas = 1;
while ($archivo = readdir($directorio)) //obtenemos un archivo y luego otro sucesivamente
{
if (is_dir($archivo))//verificamos si es o no un directorio
{
//no pasa nada-
}
else
{
echo $filas." ".$archivo . "<br />";
$filas++;
}
}
?>
Al ejecutar el archivo PHP que está dentro de dicha carpeta, debería de mostrarme 15 contenidos, pero sólo me muestra 13. Y siempre son los mismos archivos los que omite. El código del archivo PHP es el siguiente:
Código PHP:
<table width="100%" border="1" cellspacing="0" cellpadding="0" align="center">
<tr>
<?php
$directorio = opendir("."); //ruta actual
$contador = 1; //para crear solamente 5 columnas en la tabla
while ($archivo = readdir($directorio)) //obtenemos un archivo y luego otro sucesivamente
{
if (is_dir($archivo)) //verificamos si es o no un directorio
{
//no pasa nada
}
else
{
if ($contador > 5)
{
//cerramos la fila
echo "</tr>";
$contador = 1;
}
else
{
if ($archivo=="listado.php")
{
//esto es para pasar por alto el archivo php
}
else
{
//abrimos el archivo y leemos la primera línea
$fp = fopen($archivo, "r");
$linea = fgets($fp);
fclose($fp);
if ($contador == 1)
{
//abrimos una nueva fila
echo "<tr>";
}
$contador++;
?>
<td>
<?php
echo $archivo."<br>";
?>
<iframe src="<?php echo $linea; ?>media/?size=l" width="250" height="400" scrolling="no" frameborder="1"></iframe>
</td>
<?php
} //if listado.php
} //if contador
} //if is_dir
} //while
if ($contador <=5)
{
//no pasa nada
}
else
{
echo "</tr>";
}
?>
</table>
Eso me hace pensar que algo esta mal en el código, pero por más que le doy vueltas, no encuentro que puede ser.
Espero me puedan dar una orientación al respecto.
Un saludo desde Lima, Perú
Bendiciones