Foros del Web » Programando para Internet » PHP »

Problema con file list

Estas en el tema de Problema con file list en el foro de PHP en Foros del Web. Estoy intentando hacer un navegador de carpetas y archivos. Hasta alli todo muy bien, el problema es cuando he querido hacer una birgueria i he ...
  #1 (permalink)  
Antiguo 22/01/2009, 14:43
napsteir
Invitado
 
Mensajes: n/a
Puntos:
Problema con file list

Estoy intentando hacer un navegador de carpetas y archivos. Hasta alli todo muy bien, el problema es cuando he querido hacer una birgueria i he decidido a añadir iconos antes del nombre del archivo dependiendo de que tipo de archivo sea (para jpg == jpg.png, don == doc.jpg)

El código es el siguiente
Código PHP:
<?php
$sub 
= ($_GET['dir']);
$path './';
$path $path "$sub";
$dh opendir($path);
while ((
$file readdir($dh)) !== false) {
    if(
$file != "." && $file != ".." && $file != "index.php" && $file != "ico") {
            if (
substr($file, -4, -3) =="."){
                
$ext substr($filestrrpos($file'.') + 1);
                function 
ico($ext){
                if (
$ext == jpg) {echo "<img src=\"ico/jpg.png\" align=\"absmiddle\" >";}
                elseif (
$ext == doc) {echo "<img src=\"ico/doc.png\" align=\"absmiddle\" >";}
                elseif (
$ext == txt) {echo "<img src=\"ico/txt.png\" align=\"absmiddle\" >";}
                else {echo 
"<img src=\"ico/file.png\" align=\"absmiddle\" >";}}
                echo 
"ico($ext) <a href='.$sub/$file'>$file</a><br />";
            }else{           
        echo 
"<img src=\"ico/folder.png\" align=\"absmiddle\" > <a href='?dir=$sub/$file'>$file</a><br />";
          }
        
$i++;
    }
}
closedir($dh);
?>
El problema sale cuando, a la hora de insertar la imágen lo hace, pero al final me aparece lo siguiente
Código PHP:
if ($ext == jpg) {echo 
, cosa que estropea el invento. hay alguna manera de evitar que lo haga?

Inserto una imágen para que podais ver que es exacamtente lo que ocurre en el navegador
http://img135.imageshack.us/img135/2520/dibujoxj1.png
  #2 (permalink)  
Antiguo 22/01/2009, 14:54
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Problema con file list

bueno primero, estas cometiendo una barbaridad.... o varias!

NO puedes definir una función, en este caso ico() dentro de un while, por favor... sacala de ahí y colócala al inicio del script...

segundo, como jpg, doc, txt NO son constantes, usa comillas...

Código PHP:
if ($ext == 'jpg'// ... 
tercero, debes usar las formas <?php completas... ya que por eso, te sale este error!!!

cuarto, como ico() es una función no se ejecuta dentro de un string!!!

Código PHP:
echo "ico($ext) <a href='.$sub/$file'>$file</a><br />"// MAL

echo ico($ext) . "<a href='.$sub/$file'>$file</a><br />"// OK ... !!! xD 
y por ultimo, yo usaría una mejor técnica... y en lugar de echo usar return para mas flexibilidad

Código PHP:
function ico($ext)
{
  
$set = array(
    
'jpeg' => 'img/jpg.gif',
    
'jpg' => 'img/jpg.gif',
    
'doc' => 'img/doc.gif'
  
);

  return isset(
$set[$ext])? $set[$ext]: 'img/no-file.gif';
}

// u otra mas sencilla...

function ico($ext)
{
  return 
"img/$ext.gif";
}

echo 
'<img src="' ico('foo') . '"/>'
mira este aporte, ahí viene un explorador de archivos...

http://www.forosdelweb.com/f18/aport...uladas-662159/
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 22/01/2009, 15:37
napsteir
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problema con file list

Muchisimas gracias... se nota que llevo bastante tiempo sin hacer nada de php xD...
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 21:37.