Foros del Web » Programando para Internet » PHP »

Estoy usando bien scandir

Estas en el tema de Estoy usando bien scandir en el foro de PHP en Foros del Web. Hola a todos: Quiero mostrar un listado de todos los archivos que tengo en un directorio y que ellos sean mostrados en forma de lista ...
  #1 (permalink)  
Antiguo 09/03/2011, 15:15
Usuario no validado
 
Fecha de Ingreso: abril-2010
Ubicación: La habana
Mensajes: 229
Antigüedad: 14 años
Puntos: 4
Estoy usando bien scandir

Hola a todos:

Quiero mostrar un listado de todos los archivos que tengo en un directorio y que ellos sean mostrados en forma de lista con hipervinculos a ellos mismos.
Lo he logrado con "scandir" el problema es que no sé si he escrito bien mi código (aunque funcione bien) porque "scandir" me da los valores en un array asociativo y para recorrerlo empleé "foreach" pero creo que redundé en el "as" porque no tengo porqué convertirlo en asociativo si el array ya lo es (quizás tengo tremenda duda con esto) pero pienso al estar trabajando directamente el foreach en un array asociativo quizás debí manipularlo diferente.

Mis preguntas son:

* Está bien escrito este código (de no ser así díganme que corrijo) ?
* Cómo hago para que no se me muestren los dos últimos resultados del array que són los respectivos puntos de directorio raíz y superior (".", "..") ?
* Existe algún otro trozo de código que simplifique la forma de logar lo mismo (el empleo de otra función o algo).

Este es mi código:

Código PHP:
$dir    'C:\wamp\www\web-laboral\Docs';
$archivos1 scandir($dir);
$ruta ="http://trw-dir-juank/web-laboral/docs/";
echo 
"<ul>";
foreach(
$archivos1 as $c=>$v){
echo 
"<li>";
    echo 
"<a href=\"$ruta".basename($v)."\" target=\"_blank\">".basename($v)."</a>";
       echo 
"</li>";
    }
    echo 
"<ul>"
Salu2

Al tanto y gracias de antemano.
  #2 (permalink)  
Antiguo 09/03/2011, 16:14
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Estoy usando bien scandir

Verifica este aporte, para que te hagas una idea de mostrar todo el arbol de un directorio, usando funciones recursivas http://www.forosdelweb.com/f18/aport...ctorios-864232

Pero una forma sencilla de lograr es
Código PHP:
Ver original
  1. <?php
  2. $dir = $_SERVER['DOCUMENT_ROOT'] . '/'; // c:/wamp/www/
  3. $url = 'http://localhost/';
  4. echo '<ul>';
  5. foreach(glob($dir . '*', GLOB_MARK) as $file){
  6.     $pathInfo = pathinfo($file);
  7.     echo '<li><a href="' . $url . $pathInfo['basename'] . '">' . $url . $pathInfo['basename'] . '</a></li>';
  8. }
  9. echo '</ul>';
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos

Última edición por abimaelrc; 09/03/2011 a las 16:29
  #3 (permalink)  
Antiguo 15/03/2011, 08:19
Usuario no validado
 
Fecha de Ingreso: abril-2010
Ubicación: La habana
Mensajes: 229
Antigüedad: 14 años
Puntos: 4
Respuesta: Estoy usando bien scandir

Muchas gracias me fue de gran utilidad la el código que pones. Encuanto a este enlace: http://www.forosdelweb.com/f18/aport...ctorios-864232 lo voy a estudiar deteneidamente cuando tenga mas tiempo.

Lo que no me pones es si el código que yo puse estaba bien o tenía errores, no quisiera quedarme con esa duda.
Salu2
  #4 (permalink)  
Antiguo 15/03/2011, 11:27
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Estoy usando bien scandir

Lo que te recomiendo, que falla tanto mi código como el tuyo es que aquello que sea html, no lo encierres en las etiquetas de PHP.
Código PHP:
Ver original
  1. <?php
  2. $dir = $_SERVER['DOCUMENT_ROOT'] . '/'; // c:/wamp/www/
  3. $url = 'http://localhost/';
  4. ?>
  5. <ul>
  6. <?php foreach(glob($dir . '*', GLOB_MARK) as $file){
  7.     $pathInfo = pathinfo($file);
  8. ?>
  9.     <li><a href="<?php echo $url . $pathInfo['basename']; ?>">'<?php echo $url . $pathInfo['basename']; ?></a></li>
  10. <?php } ?>
  11. </ul>
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 16/03/2011, 07:53
Avatar de ArkangelGammar  
Fecha de Ingreso: enero-2011
Ubicación: <?php $persona->ubicacion('ArkangelGammar'); ?>
Mensajes: 179
Antigüedad: 13 años, 3 meses
Puntos: 19
Respuesta: Estoy usando bien scandir

Yo uso este que me esta funcionando joya:

Código PHP:
$dir         "salida/"
    
$directorio    =opendir($dir); 
    
$salida     "<br /><table align='center' class='cuerpo2'>
                            <thead border='1'>
                                <tr>
                                    <td>Nombre del archivo</td>
                                    <td align='center'>Accion</td>
                                </tr>
                            </thead>
                        <tr>
                        "
;
    
    while (
$archivo readdir($directorio)){ 
        if(
$archivo !='.' and $archivo !='..'){ 
            
$enlace $dir.$archivo;
            
$nombre explode(".",$archivo); 
            
$cant    count($nombre) - 1;
            
$tipo $nombre[$cant];    
            
$salida .="<td>".$nombre[0]."</td>
                        <td align='center'><a href='"
.$enlace."'><b>Abrir </b></a></td>";
            
$salida .= "</tr>";
            
//}
    
        
}
    }
    
$salida .= "</table>";

    echo 
$salida
Espero haber ayudado,

Saludos
__________________
"No entiendes algo al menos que seas capaz de explicarselo a tu abuela.
Cada dia sabemos mas....y entendemos menos...."

A. Einstein - Genio mas alla de la razon.

Etiquetas: Ninguno
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 20:33.