Foros del Web » Programando para Internet » PHP »

sistema de listado en php

Estas en el tema de sistema de listado en php en el foro de PHP en Foros del Web. Bueno gente amigas del foro, hoy no vengo a pedir ayuda, sino a brindar mi ayuda. Bien con unos amigos y algunos profesores hemos creado ...
  #1 (permalink)  
Antiguo 13/03/2011, 12:08
Avatar de alette666  
Fecha de Ingreso: febrero-2010
Ubicación: En la luna
Mensajes: 277
Antigüedad: 14 años, 2 meses
Puntos: 5
De acuerdo sistema de listado en php

Bueno gente amigas del foro, hoy no vengo a pedir ayuda, sino a brindar mi ayuda.

Bien con unos amigos y algunos profesores hemos creado un muy bonito sistema de listado de archivos o "contenidos" que se encuentran en una carpeta o sitio web.
La misma cuenta con unas series de comandos muy definidas, nos tomó algo de tiempo, desde que empezamos las clases (no mucho)

Bueno al grano

listado.php
Código PHP:
<?php
$host
=$_SERVER['HTTP_HOST'];
/*Directorio de secuencias de comandos de listado - Versión 2*/
/*============================================================*/
$startdir '.';
$showthumbnails false
$showdirs true;
$forcedownloads false;
$hide = array(
    
'dlf',
    
'public_html',                
    
'index.php',
    
'Thumbs',
    
'.htaccess',
    
'.htpasswd'
);

$displayindex false;
$allowuploads false;
$overwrite false;

$indexfiles = array (
    
'index.html',
    
'index.htm',
    
'default.htm',
    
'default.html'
);

/*Tipos de archivos que se mostraran en nuestra lista*/
$filetypes = array (
    
'png' => 'jpg.gif',
    
'jpeg' => 'jpg.gif',
    
'bmp' => 'jpg.gif',
    
'jpg' => 'jpg.gif'
    
'gif' => 'gif.gif',
    
'zip' => 'archive.png',
    
'rar' => 'archive.png',
    
'exe' => 'exe.gif',
    
'setup' => 'setup.gif',
    
'txt' => 'text.png',
    
'htm' => 'html.gif',
    
'html' => 'html.gif',
    
'php' => 'php.gif',                
    
'fla' => 'fla.gif',
    
'swf' => 'swf.gif',
    
'xls' => 'xls.gif',
    
'doc' => 'doc.gif',
    
'sig' => 'sig.gif',
    
'fh10' => 'fh10.gif',
    
'pdf' => 'pdf.gif',
    
'psd' => 'psd.gif',
    
'rm' => 'real.gif',
    
'mpg' => 'video.gif',
    
'mpeg' => 'video.gif',
    
'mov' => 'video2.gif',
    
'avi' => 'video.gif',
    
'eps' => 'eps.gif',
    
'gz' => 'archive.png',
    
'asc' => 'sig.gif',
);            

error_reporting(0);

if(!
function_exists('imagecreatetruecolor')) $showthumbnails false;
    
$leadon $startdir;
if(
$leadon=='.'$leadon '';
if((
substr($leadon, -11)!='/') && $leadon!=''$leadon $leadon '/';
    
$startdir $leadon;
if(
$_GET['dir']) {
//Comprobamos si está todo correcto.
if(substr($_GET['dir'], -11)!='/') {
    
$_GET['dir'] = $_GET['dir'] . '/';
}
$dirok true;
$dirnames split('/'$_GET['dir']);
for(
$di=0$di<sizeof($dirnames); $di++) {
if(
$di<(sizeof($dirnames)-2)) {
    
$dotdotdir $dotdotdir $dirnames[$di] . '/';
}
if(
$dirnames[$di] == '..') {
    
$dirok false;
}
}
if(
substr($_GET['dir'], 01)=='/') {
    
$dirok false;
}
if(
$dirok) {
    
$leadon $leadon $_GET['dir'];
}
}
$opendir $leadon;
if(!
$leadon$opendir '.';
if(!
file_exists($opendir)) {
    
$opendir '.';
    
$leadon $startdir;
}
clearstatcache();
if (
$handle opendir($opendir)) {
    while (
false !== ($file readdir($handle))) { 
//Primero vemos si este archivo es necesario en la lista
if ($file == "." || $file == "..")  continue;
    
$discard false;
for(
$hi=0;$hi<sizeof($hide);$hi++) {
if(
strpos($file$hide[$hi])!==false) {
    
$discard true;
}
}
if(
$discard) continue;
if (@
filetype($leadon.$file) == "dir") {
if(!
$showdirs) continue;
    
$n++;
if(
$_GET['sort']=="date") {
    
$key = @filemtime($leadon.$file) . ".$n";
}
else {
    
$key $n;
}
$dirs[$key] = $file "/";
}
else {
    
$n++;
if(
$_GET['sort']=="date") {
    
$key = @filemtime($leadon.$file) . ".$n";
}
elseif(
    
$_GET['sort']=="size") {
    
$key = @filesize($leadon.$file) . ".$n";
}
else {
    
$key $n;
}
    
$files[$key] = $file;
if(
$displayindex) {
if(
in_array(strtolower($file), $indexfiles)) {
    
header("Location: $file");
die();
}
}
}
}
closedir($handle); 
}
//Ordenamos nuestros archivos
if($_GET['sort']=="date") {
    @
ksort($dirsSORT_NUMERIC);
    @
ksort($filesSORT_NUMERIC);
}
elseif(
$_GET['sort']=="size") {
    @
natcasesort($dirs); 
    @
ksort($filesSORT_NUMERIC);
}
else {
    @
natcasesort($dirs); 
    @
natcasesort($files);
}
//Ordenamos correctamente
if($_GET['order']=="desc" && $_GET['sort']!="size") {$dirs = @array_reverse($dirs);}
if(
$_GET['order']=="desc") {$files = @array_reverse($files);}
    
$dirs = @array_values($dirs); $files = @array_values($files);
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Welcome to <? print $host?></title>
<link rel="stylesheet" type="text/css" href="styles.css" />
</head>
<body>
<div id="container">
<h1>Mostrando el listado de contenidos de una sitio web!</h1>
<div id="breadcrumbs">
<p>Tipo de red:&nbsp;&nbsp;<strong><? print $host?></strong></p><!--Tipo de red que se visualiza-->
<p><span class="style3">A continuación puedes ver los archivos actuales en la carpeta public_html.</span></p>      
</div>
  <div id="listingcontainer">
    <div id="listingheader"> 
    <div id="headerfile">Archivo</div>
    <div id="headersize">Tama&ntilde;o</div>
    <div id="headermodified">Modificado el</div>
    </div>
    <div id="listing">
<?php
    $class 
'b';
if(
$dirok) {
?>
<div>
<a href="<?=$dotdotdir;?>" class="<?=$class;?>"><img src="dirup.png" alt="Carpeta" /><strong>..</strong> <em>-</em> <?=date ("M d Y h:i:s A"filemtime($dotdotdir));?></a></div>

<?php
if($class=='b'$class='w';
else 
$class 'b';
}
    
$arsize sizeof($dirs);
for(
$i=0;$i<$arsize;$i++) {
?>

<div><a href="<?=$leadon.$dirs[$i];?>" class="<?=$class;?>"><img src="folder.png" alt="<?=$dirs[$i];?>" /><strong><?=$dirs[$i];?></strong> <em>-</em> <?=date ("M d Y h:i:s A"filemtime($leadon.$dirs[$i]));?></a></div>
<?php
if($class=='b'$class='w';
else 
$class 'b';    
}
$arsize sizeof($files);
for(
$i=0;$i<$arsize;$i++) {
    
$icon 'unknown.png';
    
$ext strtolower(substr($files[$i], strrpos($files[$i], '.')+1));
    
$supportedimages = array('gif''png''jpeg''jpg');
    
$thumb '';
if(
$filetypes[$ext]) {
    
$icon $filetypes[$ext];
}
$filename $files[$i];

if(
strlen($filename)>43) {
    
$filename substr($files[$i], 040) . '...';
}
$fileurl $leadon $files[$i];
?>

<div>
<a href="<?=$fileurl;?>" class="<?=$class;?>"<?=$thumb2;?>><img src="<?=$icon;?>" alt="<?=$files[$i];?>" /><strong><?=$filename;?></strong> <em><?=round(filesize($leadon.$files[$i])/1024);?>KB</em> <?=date ("M d Y h:i:s A"filemtime($leadon.$files[$i]));?><?=$thumb;?></a></div>

<?php
if($class=='b'$class='w';
else 
$class 'b';    
}    
?>
</div>
</div>
</div>
<div id="copy">sistema de listado en php by <a href="http://www.forosdelweb.com/miembros/alette666/" target="_blanck">alejandro (alette666)</a></div>
</body>
</html>

y como resultado verian esto http://gauchoargentino.orgfree.com/php/listado.php, jejeje espero que les guste esta ayuda, si quieren tenerlo para descargar solo envienmen un MP

EDITO: bueno no se ve bien el resultado pero lo pude ver desde mi pc "en red local "localhost"

Última edición por alette666; 13/03/2011 a las 12:34
  #2 (permalink)  
Antiguo 13/03/2011, 20:20
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: sistema de listado en php

El resultado no se ve bien porque estas usando short tags, <?= en lugar de <?php echo para enviar salida al navegador... No todos los servidores soportan esa caracteristica.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 13/03/2011, 20:36
Avatar de NUCKLEAR
Moderador radioactivo
 
Fecha de Ingreso: octubre-2005
Ubicación: Cordoba-Argentina
Mensajes: 5.688
Antigüedad: 18 años, 5 meses
Puntos: 890
Respuesta: sistema de listado en php

Eso lo hicieron unos amigos y unos profesores? Supongo que estaras estudiando jardineria o reposteria no?. XD

Al margen de bromas (o talvez no) Fijate lo que dice Triby.

Saludines ;)
__________________
Drupal Argentina

Etiquetas: sistemas
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 05:28.