Foros del Web » Programando para Internet » PHP »

Necesito alguna idea para este codigo PHP

Estas en el tema de Necesito alguna idea para este codigo PHP en el foro de PHP en Foros del Web. Este codigo lo que hace es mostrar los archivos de una carpeta especifica, su tamaño y su extenion desde tu servidor FTP. por ejemplo abajo ...
  #1 (permalink)  
Antiguo 19/03/2013, 10:13
 
Fecha de Ingreso: marzo-2013
Mensajes: 2
Antigüedad: 11 años, 1 mes
Puntos: 0
Mensaje Necesito alguna idea para este codigo PHP

Este codigo lo que hace es mostrar los archivos de una carpeta especifica, su tamaño y su extenion desde tu servidor FTP.

por ejemplo abajo de todo tengo un "echo" que muestra toda la function principal, basta con solo poner la cartpeta , mostrara los archivos con enlaces para descargar y sus datos

Se podria modificar para que muestre un buscador y poder realizar la busqueda y que muetrre los archivos por esa busqueda?
alguna idea?


Código PHP:
<?

function listar_ficheros ($carpeta){

    
//Comprobamos que la carpeta existe

    
if (is_dir ($carpeta)){

        
//Escaneamos la carpeta usando scandir

        
$scanarray scandir ($carpeta);

    echo 
"<table border=1 class=contenedor>

            <tr>

            <td><strong>Nombre</strong></td>

            <td><strong>Extencion</strong></td>

            <td><strong>Peso del archivo</strong></td>

            </tr>"
;            

        for (
$i 0$i count ($scanarray); $i++){

            
//Eliminamos  "." and ".." del listado de ficheros

            
if ($scanarray[$i] != "." && $scanarray[$i] != ".."){

        
//No mostramos los subdirectorios

        
if (is_file ($carpeta "/" $scanarray[$i])){

                        
//Verificamos que la extension se encuentre en $tipos

                
echo "<tr>";

                
$thepath pathinfo ($carpeta "/" $scanarray[$i]);

                

                                echo 
"<td> <a href=\"uploads/$scanarray[$i]\">$scanarray[$i]</a> </td>"

                echo 
"<td>".$thepath['extension']."</td>";

                echo 
"<td>".formato_tam(filesize($carpeta "/" $scanarray[$i]));

                echo 
"</tr>";

                }

            }

        }

    echo 
"</table>";

    } else {

        echo 
"La carpeta no existe";

    }

}

function 
formato_tam($size$precision 0) {

    
$sizes = array('Tb''Gb''Mb''Kb''bytes');

    
$total count($sizes);

    while(
$total-- && $size 1024$size /= 1024;

    return 
round($size$precision)." ".$sizes[$total];

}

?>



<?

 

echo listar_ficheros ("uploads/.");



?>
  #2 (permalink)  
Antiguo 19/03/2013, 11:18
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 12 años, 10 meses
Puntos: 181
Respuesta: Necesito alguna idea para este codigo PHP

Hola, la verdad no vi tu script pero lo hice porque das por sentado que esta bien hecho.

Yo lo primero que haria seria crear un arreglo donde me muestre todos los archivos. (seguramente lo tienes, repito no lo he mirado si lo tienes bien).

Si te salen los nombres de archivo con .jpg o .doc etc deberias crear una copia y a esa copia quitarle las extensiones de los archivos para que la persona pueda buscarlos sin la extensión.

haria las busquedas colocando los nombres de los archivos todos en minusculas porque si existe por ejemplo. Perro no es igual a perro entonces tanto en el arreglo como en el buscador deberia poder buscarse por minusculas.

Con una función como array_search podrias hacer la busqueda, si te da algo la búsqueda te retornara la llave.

Si guardas los datos de la carpeta en una base de datos podras hacer una busqueda tipo LIKE que no es exacta. Si la haces solo con el arreglo te toca que sean exactamente las mismas letras. Es tu decisión, sin son muchos archivos me suena que es una mejor opción guardar en una base de datos.

Suerte con eso.
__________________
Blog de humor http://elcuasatar.net63.net/

Etiquetas: bd
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:34.