Tengo un problema cuando hago el recorrido de un directorio no me detecta los tipos de archivos y a todos los elementos u objetos me los reconoce como ti todos fueran directorios, pero cuando efectruo que se lea el mismo direcotorio en donde esta la pagina index.php que lee el direcotorio todo funciona bien el problema es cuando leo otro directorio.. el codigo es el siguiente:
if($ruta == "")
{
$dir = "/Apache/htdocs/download/";
//$dir = ".";
}
else
{
$dir = $ruta;
}
$d = dir($dir); //Leemos el directorio
while ($file = $d->read())
{
//Capturamos todos los atributos del archivo.
$tipo = filetype($file);
$size = filezise($file);
$modificado = stat($file);
$ext = strrchr($file,'.');
$solo_nombre = str_replace (strrchr ($file, "."), "", $file);
# Verificamos si es un fichero (no un directorio) y si la extension del directorio se encuentra en $display_list
#--------------------------------------------------------------------------------
if ($tipo == file && preg_match ("/$ext/i", $display_list))
{
$solo_nombre = str_replace("_"," ",$solo_nombre);
$solo_nombre = strtolower($solo_nombre);
$solo_nombre = ucwords($solo_nombre);
$uploaddate = date("m-d-y",$modificado[9]);
//Formateamos la salida de acuerdo al criterio de orden.
if ((!$search) && ($orden == "Alfabetico"))
{
$filename[$totalfiles] = "$solo_nombre|$solo_nombre|$file|$ext|$size|$uploa ddate|$content";
}
if ((!$search) && ($orden == "Tamaño"))
{
$filename[$totalfiles] = "$size|$solo_nombre|$file|$ext|$size|$uploaddate|$ content";
}
if ((!$search) && ($orden == "Accesos"))
{
$filename[$totalfiles] = "$accesses|$solo_nombre|$file|$ext|$size|$uploadda te|$content";
}
if (($search) && ($C1))
{
$searchtext = "Your search for <b>$search</b> Yielded the following results:";
$filas_por_pagina = 0;
$currentpage = 1;
$pos = preg_match ("/$search/i", "$solo_nombre$content");
#print "pos is $pos";
if ($pos)
{
$filename[$totalfiles] = "$accesses|$solo_nombre|$file|$ext|$size|$uploadda te|$content";
//print $solo_nombre;
}
}
if ($search)
{
$searchtext = "Your search for <b>$search</b> Yielded the following results:";
$filas_por_pagina = 0;
$currentpage = 1;
$pos = preg_match ("/$search/i", "$solo_nombre");
#print "pos is $pos";
if ($pos)
{
$filename[$totalfiles] = "$accesses|$solo_nombre|$file|$ext|$size|$uploadda te|$content";
#print $solo_nombre;
}
}
$totalbytes = $totalbytes + $size;
$totalfiles++;
}
elseif(($tipo == dir) && ($file != ".") && ($file != ".."))
{
$solo_nombre = str_replace("_"," ",$solo_nombre);
//echo $solo_nombre;
$solo_nombre = strtolower($solo_nombre);
$solo_nombre = ucwords($solo_nombre);
$uploaddate = date("m-d-y",$modificado[9]);
//Formateamos la salida de acuerdo al criterio de orden.
if ((!$search) && ($orden == "Alfabetico")&& ($solonombre != "."))
{
$foldername[$totalfolder] = "$solo_nombre|$solo_nombre|$file|$ext|$size|$uploa ddate|$content";
}
if ((!$search) && ($orden == "Tamaño"))
{
$foldername[$totalfolder] = "$size|$solo_nombre|$file|$ext|$size|$uploaddate|$ content";
}
if ((!$search) && ($orden == "Accesos"))
{
$foldername[$totalfolder] = "$accesses|$solo_nombre|$file|$ext|$size|$uploadda te|$content";
}
$totalbyte = $totalbytea + $size;
$totalfolder++;
}
}
el problema surge cuando en l linea
$dir = "/apache/htdocs/download/" funciona todo bien pero si el direcotior cambai a "/apache/htdocs/download/prueba/" me sale un erro al leer el tamaño el el stat, y cuando utilizo otras rutas tambien me reconoce a los archivos como de tipo carpeta