Avatar billede egzonrh Nybegynder
14. april 2009 - 14:14 Der er 62 kommentarer og
1 løsning

Ændre baggrunden til hvid i dette script.

Hey eksperter,

Jeg har tilføjet "PHP Directory Listing Script" til min hjemmeside, som viser en download liste.
Listen har en lidt grå baggrund. Er der nogen der kan skifte farven til 100% hvid i dette script?
Billede: http://img21.imageshack.us/img21/5244/unavngivetrtg.jpg

Tak,

Script:

<?
/*
Directory Listing Script - Version 2
====================================
Script Author: Ash Young <ash@evoluted.net>. www.evoluted.net
Layout: Manny <manny@tenka.co.uk>. www.tenka.co.uk

REQUIREMENTS
============
This script requires PHP and GD2 if you wish to use the
thumbnail functionality.

INSTRUCTIONS
============
1) Unzip all files
2) Edit this file, making sure everything is setup as required.
3) Upload to server
4) ??????
5) Profit!

CONFIGURATION
=============
Edit the variables in this section to make the script work as
you require.

Start Directory - To list the files contained within the current
directory enter '.', otherwise enter the path to the directory
you wish to list. The path must be relative to the current
directory.
*/
$startdir = '.';

/*
Show Thumbnails? - Set to true if you wish to use the
scripts auto-thumbnail generation capabilities.
This requires that GD2 is installed.
*/
$showthumbnails = true;

/*
Show Directories - Do you want to make subdirectories available?
If not set this to false
*/
$showdirs = true;

/*
Force downloads - Do you want to force people to download the files
rather than viewing them in their browser?
*/
$forcedownloads = true;

/*
Hide Files - If you wish to hide certain files or directories
then enter their details here. The values entered are matched
against the file/directory names. If any part of the name
matches what is entered below then it is now shown.
*/
$hide = array(
                'dlf',
                'index.php',
                'Thumbs',
                '.htaccess',
                '.htpasswd'
            );
           
/*
Show index files - if an index file is found in a directory
to you want to display that rather than the listing output
from this script?
*/           
$displayindex = false;

/*
Allow uploads? - If enabled users will be able to upload
files to any viewable directory. You should really only enable
this if the area this script is in is already password protected.
*/
$allowuploads = false;

/*
Overwrite files - If a user uploads a file with the same
name as an existing file do you want the existing file
to be overwritten?
*/
$overwrite = false;

/*
Index files - The follow array contains all the index files
that will be used if $displayindex (above) is set to true.
Feel free to add, delete or alter these
*/

$indexfiles = array (
                'index.html',
                'index.htm',
                'default.htm',
                'default.html'
            );
           
/*
File Icons - If you want to add your own special file icons use
this section below. Each entry relates to the extension of the
given file, in the form <extension> => <filename>.
These files must be located within the dlf directory.
*/
$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',
                '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',
            );
           
/*
That's it! You are now ready to upload this script to the server.

Only edit what is below this line if you are sure that you know what you
are doing!
*/
error_reporting(0);
if(!function_exists('imagecreatetruecolor')) $showthumbnails = false;
$leadon = $startdir;
if($leadon=='.') $leadon = '';
if((substr($leadon, -1, 1)!='/') && $leadon!='') $leadon = $leadon . '/';
$startdir = $leadon;

if($_GET['dir']) {
    //check this is okay.
   
    if(substr($_GET['dir'], -1, 1)!='/') {
        $_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'], 0, 1)=='/') {
        $dirok = false;
    }
   
    if($dirok) {
        $leadon = $leadon . $_GET['dir'];
    }
}

if($_GET['download'] && $forcedownloads) {
    $file = str_replace('/', '', $_GET['download']);
    $file = str_replace('..', '', $file);

    if(file_exists($leadon . $file)) {
        header("Content-type: application/x-download");
        header("Content-Length: ".filesize($leadon . $file));
        header('Content-Disposition: attachment; filename="'.$file.'"');
        readfile($leadon . $file);
        die();
    }
}

if($allowuploads && $_FILES['file']) {
    $upload = true;
    if(!$overwrite) {
        if(file_exists($leadon.$_FILES['file']['name'])) {
            $upload = false;
        }
    }
   
    if($upload) {
        move_uploaded_file($_FILES['file']['tmp_name'], $leadon . $_FILES['file']['name']);
    }
}

$opendir = $leadon;
if(!$leadon) $opendir = '.';
if(!file_exists($opendir)) {
    $opendir = '.';
    $leadon = $startdir;
}

clearstatcache();
if ($handle = opendir($opendir)) {
    while (false !== ($file = readdir($handle))) {
        //first see if this file is required in the listing
        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);
}

//sort our files
if($_GET['sort']=="date") {
    @ksort($dirs, SORT_NUMERIC);
    @ksort($files, SORT_NUMERIC);
}
elseif($_GET['sort']=="size") {
    @natcasesort($dirs);
    @ksort($files, SORT_NUMERIC);
}
else {
    @natcasesort($dirs);
    @natcasesort($files);
}

//order correctly
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>Download<?=dirname($_SERVER['PHP_SELF']).'/'.$leadon;?></title>
<link rel="stylesheet" type="text/css" href="dlf/styles.css" />
<?
if($showthumbnails) {
?>
<script language="javascript" type="text/javascript">
<!--
function o(n, i) {
    document.images['thumb'+n].src = 'dlf/i.php?f='+i;

}

function f(n) {
    document.images['thumb'+n].src = 'dlf/trans.gif';
}
//-->
</script>
<?
}
?>
</head>
<body>
<div id="container">
  <h1><?=dirname($_SERVER['PHP_SELF']);?></h1>
  <div id="breadcrumbs">
  <?
    $breadcrumbs = split('/', $leadon);
      if(($bsize = sizeof($breadcrumbs))>0) {
          $sofar = '';
          for($bi=0;$bi<($bsize-1);$bi++) {
            $sofar = $sofar . $breadcrumbs[$bi] . '/';
            echo ' &gt; <a href="'.$_SERVER['PHP_SELF'].'?dir='.urlencode($sofar).'">'.$breadcrumbs[$bi].'</a>';
        }
      }
 
    $baseurl = $_SERVER['PHP_SELF'] . '?dir='.$_GET['dir'] . '&amp;';
    $fileurl = 'sort=name&amp;order=asc';
    $sizeurl = 'sort=size&amp;order=asc';
    $dateurl = 'sort=date&amp;order=asc';
   
    switch ($_GET['sort']) {
        case 'name':
            if($_GET['order']=='asc') $fileurl = 'sort=name&amp;order=desc';
            break;
        case 'size':
            if($_GET['order']=='asc') $sizeurl = 'sort=size&amp;order=desc';
            break;
           
        case 'date':
            if($_GET['order']=='asc') $dateurl = 'sort=date&amp;order=desc';
            break; 
        default:
            $fileurl = 'sort=name&amp;order=desc';
            break;
    }
  ?>
  </div>
  <div id="listingcontainer">
    <div id="listingheader">
    <div id="headerfile"><a href="<?=$baseurl . $fileurl;?>">Filnavn</a></div>
    <div id="headersize"><a href="<?=$baseurl . $sizeurl;?>">Størrelse</a></div>
    <div id="headermodified"><a href="<?=$baseurl . $dateurl;?>">Dato</a></div>
    </div>
    <div id="listing">
    <?
    $class = 'b';
    if($dirok) {
    ?>
    <div><a href="<?=$_SERVER['PHP_SELF'].'?dir='.urlencode($dotdotdir);?>" class="<?=$class;?>"><img src="dlf/dirup.png" alt="Folder" /><strong>..</strong> <em>-</em> <?=date ("d M Y H:i:s", filemtime($dotdotdir));?></a></div>
    <?
        if($class=='b') $class='w';
        else $class = 'b';
    }
    $arsize = sizeof($dirs);
    for($i=0;$i<$arsize;$i++) {
    ?>
    <div><a href="<?=$_SERVER['PHP_SELF'].'?dir='.urlencode($leadon.$dirs[$i]);?>" class="<?=$class;?>"><img src="dlf/folder.png" alt="<?=$dirs[$i];?>" /><strong><?=$dirs[$i];?></strong> <em>-</em> <?=date ("d M Y H:i:s", filemtime($leadon.$dirs[$i]));?></a></div>
    <?
        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($showthumbnails && in_array($ext, $supportedimages)) {
            $thumb = '<span><img src="dlf/trans.gif" alt="'.$files[$i].'" name="thumb'.$i.'" /></span>';
            $thumb2 = ' onmouseover="o('.$i.', \''.urlencode($leadon . $files[$i]).'\');" onmouseout="f('.$i.');"';
           
        }
       
        if($filetypes[$ext]) {
            $icon = $filetypes[$ext];
        }
       
        $filename = $files[$i];
        if(strlen($filename)>43) {
            $filename = substr($files[$i], 0, 40) . '...';
        }
       
        $fileurl = $leadon . $files[$i];
        if($forcedownloads) {
            $fileurl = $_SESSION['PHP_SELF'] . '?dir=' . urlencode($leadon) . '&download=' . urlencode($files[$i]);
        }

    ?>
    <div><a href="<?=$fileurl;?>" class="<?=$class;?>"<?=$thumb2;?>><img src="dlf/<?=$icon;?>" alt="<?=$files[$i];?>" /><strong><?=$filename;?></strong> <em><?=round(filesize($leadon.$files[$i])/1024);?>KB</em> <?=date ("d M Y H:i:s", filemtime($leadon.$files[$i]));?><?=$thumb;?></a></div>
    <?
        if($class=='b') $class='w';
        else $class = 'b';   
    }   
    ?></div>
    <?
    if($allowuploads) {
        $phpallowuploads = (bool) ini_get('file_uploads');       
        $phpmaxsize = ini_get('upload_max_filesize');
        $phpmaxsize = trim($phpmaxsize);
        $last = strtolower($phpmaxsize{strlen($phpmaxsize)-1});
        switch($last) {
            case 'g':
                $phpmaxsize *= 1024;
            case 'm':
                $phpmaxsize *= 1024;
        }
   
    ?>
    <div id="upload">
        <div id="uploadtitle"><strong>File Upload</strong> (Max Filesize: <?=$phpmaxsize;?>KB)</div>
        <div id="uploadcontent">
            <?
            if($phpallowuploads) {
            ?>
            <form method="post" action="<?=$_SERVER['PHP_SELF'];?>?dir=<?=urlencode($leadon);?>" enctype="multipart/form-data">
            <input type="file" name="file" /> <input type="submit" value="Upload" />
            </form>
            <?
            }
            else {
            ?>
            File uploads are disabled in your php.ini file. Please enable them.
            <?
            }
            ?>
        </div>
       
    </div>
    <?
    }
    ?>
  </div>
</div>
Avatar billede jakobdo Ekspert
14. april 2009 - 14:27 #1
Jeg tror "bare" du skal kigge i filen:

dlf/styles.css

Jeg tror du skal kigge efter:

listingcontainer

Står der så ikke noget i stil med:
background-color: FARVE
eller
background: url(....)
Avatar billede egzonrh Nybegynder
14. april 2009 - 19:32 #2
Jeg har fundet en version 2 af dette script.

Der har jeg fundet ud af hvordan man ændrer baggrunden.
Men så er problemet også:
- Hvordan laver man datoen om til dansk?
- Hvordan tilføjer man æ,ø,å på scriptet?

Billede: http://img113.imageshack.us/img113/6191/unavngivetosp.png

Har du en idé om det?

Jeg indsætter scriptet på næste indlæg.
Avatar billede egzonrh Nybegynder
14. april 2009 - 19:33 #3
/** ---------------------------------------------------------------------------------------------------------------[ READ DIRECTORY ]
* @desc                    This is where all the magic happens. We read the current directory and
*                         build an array of images and folders to list.
*/
// Get this folder and files name.
$this_script = basename(__FILE__);
$this_folder = str_replace('/'.$this_script, '', $_SERVER['SCRIPT_NAME']);

// Declare vars used beyond this point.
$file_list = array();
$folder_list = array();
$total_size = 0;

// Open the current directory...
if ($handle = opendir('.'))
{
    // ...start scanning through it.
    while (false !== ($file = readdir($handle)))
    {
        // Make sure we don't list this folder, file or their links.
        if ($file != "." && $file != ".." && $file != $this_script)
        {
            // Get file info.
            $stat                =    stat($file); // ... slow, but faster than using filemtime() & filesize() instead.
            $info                =    pathinfo($file);
           
            // Organize file info.
            $item['name']        =    $info['filename'];
            $item['lname']        =    strtolower($info['filename']);
            $item['ext']        =    $info['extension'];
                if($info['extension'] == '') $item['ext'] = '.';
            $item['bytes']        =    $stat['size'];
            $item['size']        =    bytes_to_string($stat['size'], 2);
            $item['mtime']        =    $stat['mtime'];
           
            // Build links. Add interactivity. Be cool.
            if(in_array($item['ext'], array('jpg', 'jpeg', 'png', 'gif', 'bmp'))) // thickbox for images
            {
                $item['link'] = '<a class="thickbox" href="'.$item['name'].'.'.$item['ext'].'">'.$item['name'].'.'.$item['ext'].'</a>';
            }
            elseif(in_array($item['ext'], array('mov', 'mpg', 'mpeg'))) // thickbox for quicktime
            {
                $item['link'] = '<a class="thickbox" href="'.$this_script.'?display=quicktime&file='.$item['name'].'.'.$item['ext'].'&TB_iframe=true&width='.$vWidth.'&height='.$vHeight.'">'.$item['name'].'.'.$item['ext'].'</a>';
            }
            elseif($item['ext'] == 'flv') // thickbox for flv's'
            {
                $item['link'] = '<a class="thickbox" href="'.$this_script.'?display=flv&file='.$item['name'].'.'.$item['ext'].'&TB_iframe=true&width='.$vWidth.'&height='.$vHeight.'">'.$item['name'].'.'.$item['ext'].'</a>';
            }
            elseif($item['ext'] == 'mp3') // thickbox for mp3's'
            {
                $item['link'] = '<a class="thickbox" href="'.$this_script.'?display=mp3&file='.$item['name'].'.'.$item['ext'].'&TB_iframe=true&width=200&height=20">'.$item['name'].'.'.$item['ext'].'</a>';
            }
            else // standard link
            {
                $item['link'] = '<a href="'.$item['name'].'.'.$item['ext'].'">'.$item['name'].'.'.$item['ext'].'</a>';
            }
           
            // Add files to the file list...
            if($info['extension'] != '')
            {
                array_push($file_list, $item);
            }
            // ...and folders to the folder list.
            else
            {
                array_push($folder_list, $item);
            }
            // Clear stat() cache to free up memory (not really needed).
            clearstatcache();
            // Add this items file size to this folders total size
            $total_size += $item['bytes'];
        }
    }
    // Close the directory when finished.
    closedir($handle);
}
// Sort folder list.
if($folder_list)
    $folder_list = php_multisort($folder_list, $sort);
// Sort file list.
if($file_list)
    $file_list = php_multisort($file_list, $sort);
// Calculate the total folder size
if($file_list && $folder_list)
    $total_size = bytes_to_string($total_size, 2);

   
/** -------------------------------------------------------------------------------------------------------------------[ FUNCTIONS ]
* @desc                    Define functions used in this script
*/


/**
* @author                http://us.php.net/manual/en/function.array-multisort.php#83117
* @desc                    Sorts a multidimensional array akin to sorting an SQL result
*/
function php_multisort($data,$keys)
{
    foreach ($data as $key => $row)
    {
        foreach ($keys as $k)
        {
            $cols[$k['key']][$key] = $row[$k['key']];
        }
    }
    $idkeys = array_keys($data);
    $i=0;
    foreach ($keys as $k)
    {
        if($i>0){$sort.=',';}
        $sort.='$cols['.$k['key'].']';
        if($k['sort']){$sort.=',SORT_'.strtoupper($k['sort']);}
        if($k['type']){$sort.=',SORT_'.strtoupper($k['type']);}
        $i++;
    }
    $sort .= ',$idkeys';
    $sort = 'array_multisort('.$sort.');';
    eval($sort);
    foreach($idkeys as $idkey)
    {
        $result[$idkey]=$data[$idkey];
    }
    return $result;
}

/**
* @author                http://us3.php.net/manual/en/function.filesize.php#84652
* @desc                    Gets a filesize in bytes, returns a string representation
*                         of that file in an easily readable format.
*/
function bytes_to_string($size, $precision = 0) {
    $sizes = array('YB', 'ZB', 'EB', 'PB', 'TB', 'GB', 'MB', 'KB', 'Bytes');
    $total = count($sizes);
    while($total-- && $size > 1024) $size /= 1024;
    $return['num'] = round($size, $precision);
    $return['str'] = $sizes[$total];
    return $return;
}

/**
* @author                http://us.php.net/manual/en/function.time.php#71342
* @desc                    Returns the time between now and timestamp provided
*/
function time_ago($timestamp, $recursive = 0)
{
    $current_time = time();
    $difference = $current_time - $timestamp;
    $periods = array("sekund", "minute", "hour", "day", "week", "month", "year", "decade");
    $lengths = array(1, 60, 3600, 86400, 604800, 2630880, 31570560, 315705600);
    for ($val = sizeof($lengths) - 1; ($val >= 0) && (($number = $difference / $lengths[$val]) <= 1); $val--);
    if ($val < 0) $val = 0;
    $new_time = $current_time - ($difference % $lengths[$val]);
    $number = floor($number);
    if($number != 1)
    {
        $periods[$val] .= "s";
    }
    $text = sprintf("%d %s ", $number, $periods[$val]); 
   
    if (($recursive == 1) && ($val >= 1) && (($current_time - $new_time) > 0))
    {
        $text .= time_ago($new_time);
    }
    return $text;
}

/**
* @desc                    Used to allow download/show download icon based on disallowed file types
* @todo                    extend this function to base a files download elegibility on its relation
*                         to ini_get('memory_limit') && memory_get_usage() so files that are too
*                         big to process are not attempted.
*/
function isDL($true, $false = '')
{
    global $ext_filter;
   
    if(!in_array('*', $ext_filter))
    {
        return $true;   
    }
    else
    {
        return $false;
    }
}

/** ----------------------------------------------------------------------------------------------------[ TEMPLATE: DIRECTORY LIST ]
* @desc                    This is the template used for the directory listing
*/
if(!isset($_GET['display'])) :
?>
<!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=utf-8" />
<title>PHPDL - PHP Directory Lister</title>
<style type="text/css">
body{
    font-family: "Lucida Grande",Calibri,Arial;
    font-size: 9pt;
    color: #333;
    background: #ffffff;
}
a{
    color: #b00;
    font-size: 11pt;
    font-weight: bold;
    text-decoration: none;
}
a:hover{
    color: #000;
}
img{
    vertical-align: bottom;
    padding: 0 3px 0 0;
}
sup{
    color: #999;
}
table{
    margin: 0 auto;
    padding: 0;
    width: 600px;
}
    table td{
        padding: 5px;
    }
    thead td{
        padding-left: 0;
        font-family: "Trebuchet MS";
        font-size: 11pt;
        font-weight: bold;
    }
    tbody td.name{
        width: 99%;
    }
    tbody .folder td{
        border: solid 1px #ffffff;
    }
    tbody .file td{
        background: #fff;
        border: solid 1px #ddd;
    }
        tbody tr.file:hover td{
            background: #ffff9d;
        }
        tbody tr.file:hover td.dl{
            background: #ffffff;
        }
    tbody .file td.size,
    tbody .file td.time{
        white-space: nowrap;
        padding: 5px 10px;
    }
    tbody .file td.size span{
        color: #999;
        font-size: 8pt;
    }
    tbody .file td.time{
        color: #555;
    }
    tbody td.dl{
        padding: 5px 0;
        width: 1%;
        border-color: #f8f8f8;
        background: #ffffff;
    }
    tbody td.dl img{
        padding: 0 0 0 5px;
        border: none;
    }
    tfoot td{
        padding: 5px 0;
        color: #777;
        font-size: 8pt;
        background: #ffffff;
        border-color: #ffffff;
    }
    tfoot td.copy{
        text-align: right;
        white-space: nowrap;
    }
    tfoot td.cc{
        padding: 40px;
        text-align: center;
    }
    tfoot td.cc img{
        padding: 0;
        border: none;
    }
</style>
<link rel="stylesheet" type="text/css" href="<?=$this_script?>?resource=thickbox.css" />
<script type="text/javascript">
    var tb_pathToImage = "<?=$this_script?>?resource=loadingAnimation.gif";
</script>
<script type="text/javascript" src="<?=$this_script?>?resource=jquery.packed.js"></script>
<script type="text/javascript" src="<?=$this_script?>?resource=thickbox.packed.js"></script>
</head>

<body>
<table cellpadding="0" cellspacing="1">
    <thead>
        <tr>
            <td colspan="4"><?=$this_folder?></td>
        </tr>
    </thead>
    <tfoot>
        <tr>
            <td class="total"><? if($folder_list): ?>This folder has <?=count($file_list)?> files totaling <?=$total_size['num']?> <?=$total_size['str']?> in size<? endif; ?></td>

        </tr>
    </tfoot>
    <tbody>
<!-- folders -->
<? if($folder_list): ?>
<? foreach($folder_list as $item) : ?>
        <tr class="folder">
            <td colspan="<?=isDL('4','3')?>" class="name"><img src="<?=$this_script?>?image=<?=$item['ext']?>" alt="<?=$item['ext']?>" /> <a href="<?=$item['name']?>/">./<?=$item['name']?></a></td>
        </tr>
<? endforeach; ?>
<? endif; ?>
<!-- /folders -->
<!-- files -->
<? if($file_list): ?>
<? foreach($file_list as $item) : ?>
        <tr class="file">
            <td class="name"><img src="<?=$this_script?>?image=<?=$item['ext']?>" alt="<?=$item['ext']?>" /> <?=$item['link']?></td>
            <td class="size"><?=$item['size']['num']?><span><?=$item['size']['str']?></span></td>
            <td class="time"><?=time_ago($item['mtime'])?> old</td>
            <?=isDL('<td class="dl"><a href="'.$this_script.'?download='.$item['name'].'.'.$item['ext'].'"><img src="'.$this_script.'?image=download" alt="Download '.$item['name'].'.'.$item['ext'].'" /></a></td>')?>
        </tr>
<? endforeach; ?>
<? endif; ?>
<!-- /files -->
    </tbody>                         
</table>
</body>
</html>

<?
/** ----------------------------------------------------------------------------------------------------------[ TEMPLATE: LIGHTBOX ]
* @desc                    This is the template used to display the lightbox popup
*/
else :
?>
<!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=utf-8" />
<title>PHPDL - lightbox</title>
<style type="text/css">
body{
    margin: 0;
    padding: 0;
}
div{
    text-align: center;
}
</style>
</head>
<body>
<div>
<? if($_GET['display'] == 'quicktime' && isset($_GET['file'])) :?>
    <embed
        src="<?=$_GET['file']?>"
        width="<?=$vWidth?>"
        height="<?=$vHeight?>"
        autoplay="true"
        controller="true"
        scale="aspect"
    />
<? endif; ?>
<? if($_GET['display'] == 'flv' && isset($_GET['file'])) :?>
    <embed
        src="<?=$this_script?>?resource=player.swf"
        width="<?=$vWidth?>"
        height="<?=$vHeight?>"
        allowscriptaccess="always"
        allowfullscreen="true"
        flashvars="file=<?=$_GET['file']?>&amp;autostart=true&amp;controlbar=over&amp;bufferlength=3&amp;displayclick=play&amp;fullscreen=true&amp;stretching=fill&amp;volume=100"
    />
<? endif; ?>
<? if($_GET['display'] == 'mp3' && isset($_GET['file'])) :?>
    <embed
        src="<?=$this_script?>?resource=player_mp3_mini.swf"
        width="200"
        height="20"
        allowscriptaccess="always"
        flashvars="mp3=<?=$_GET['file']?>&amp;bgcolor=ffffff&amp;loadingcolor=bb0000&amp;buttoncolor=bb0000&amp;slidercolor=999999&amp;autoplay=1"
    />
<? endif; ?>
</div>

</body>
</html>


<? endif; ?>
Avatar billede jakobdo Ekspert
14. april 2009 - 20:30 #4
Prøv at ret:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
til:
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
Avatar billede jakobdo Ekspert
14. april 2009 - 20:31 #5
Det med dato, synes jeg dog ikke at se nogen steder.
Avatar billede egzonrh Nybegynder
14. april 2009 - 21:20 #6
Jo, mange tak:). Det virkede.

Nu er det kun datoen der er tilbage.
Datoen står under "Functions":

function time_ago($timestamp, $recursive = 0)
{
    $current_time = time();
    $difference = $current_time - $timestamp;
    $periods = array("second", "minute", "hour", "day", "week", "month", "year", "decade");
    $lengths = array(1, 60, 3600, 86400, 604800, 2630880, 31570560, 315705600);
    for ($val = sizeof($lengths) - 1; ($val >= 0) && (($number = $difference / $lengths[$val]) <= 1); $val--);
    if ($val < 0) $val = 0;
    $new_time = $current_time - ($difference % $lengths[$val]);
    $number = floor($number);
    if($number != 1)
    {
        $periods[$val] .= "s";
    }
    $text = sprintf("%d %s ", $number, $periods[$val]); 
   
    if (($recursive == 1) && ($val >= 1) && (($current_time - $new_time) > 0))
    {
        $text .= time_ago($new_time);
    }
    return $text;

-------------------------------------------------------

Jeg har prøvet at lave det til dansk, men det er lidt svært med fleretallet.
På engelsk skal man kun bruge "s" til fleretal på datoerne. På dansk skal man bruge "uge = r, måned = er, dag = e,..

Hvis du heller ikke kan finde ud af at lave den til dansk, kan du så finde ud af at omlave den til fast dato.
Som fx: 14 Apr 2009, eller sådan noget.
Avatar billede jakobdo Ekspert
14. april 2009 - 21:30 #7
Kunne du ikke lave:

$dansk_ental = array("sekund", "minut", "time", "dag", "uge", "måned", "år", "årti");
$dansk_flertal = array("sekunder", "minutter", "timer", "dage", "uger", "måneder", "år", "årtier");

if($number > 1){
  $periods = $dansk_flertal;
}else{
  $periods = $dansk_ental;
}
Avatar billede egzonrh Nybegynder
15. april 2009 - 16:13 #8
Er det sådan du mener det?

function time_ago($timestamp, $recursive = 0)
{
    $current_time = time();
    $difference = $current_time - $timestamp;
    $periods = array$dansk_ental = arra("sekund", "minut", "time", "dag", "uge", "måned", "år", "årti");
$dansk_flertal = array("sekunder", "minutter", "timer", "dage", "uger", "måneder", "år", "årtier");

if($number > 1){
  $periods = $dansk_flertal;
}else{
  $periods = $dansk_ental;
}
    }
    $text = sprintf("%d %s ", $number, $periods[$val]); 
   
    if (($recursive == 1) && ($val >= 1) && (($current_time - $new_time) > 0))
    {
        $text .= time_ago($new_time);
    }
    return $text;
Avatar billede egzonrh Nybegynder
15. april 2009 - 16:14 #9
Mere præcis:

function time_ago($timestamp, $recursive = 0)
{
    $current_time = time();
    $difference = $current_time - $timestamp;
    $periods = array
    $dansk_ental = arra("sekund", "minut", "time", "dag", "uge", "måned", "år", "årti");
    $dansk_flertal = array("sekunder", "minutter", "timer", "dage", "uger", "måneder", "år", "årtier");

    if($number > 1){
    $periods = $dansk_flertal;
    }else{
    $periods = $dansk_ental;
    }
    }
    $text = sprintf("%d %s ", $number, $periods[$val]); 
   
    if (($recursive == 1) && ($val >= 1) && (($current_time - $new_time) > 0))
    {
        $text .= time_ago($new_time);
    }
    return $text;
Avatar billede jakobdo Ekspert
15. april 2009 - 19:27 #10
Jeg tror jeg har tænkt noget ala:

function time_ago($timestamp, $recursive = 0){
    $current_time = time();
    $difference = $current_time - $timestamp;
    //$periods = array("second", "minute", "hour", "day", "week", "month", "year", "decade");
    $dansk_ental = array("sekund", "minut", "time", "dag", "uge", "måned", "år", "årti");
    $dansk_flertal = array("sekunder", "minutter", "timer", "dage", "uger", "måneder", "år", "årtier");

    $lengths = array(1, 60, 3600, 86400, 604800, 2630880, 31570560, 315705600);
    for ($val = sizeof($lengths) - 1; ($val >= 0) && (($number = $difference / $lengths[$val]) <= 1); $val--);
    if ($val < 0) $val = 0;
    $new_time = $current_time - ($difference % $lengths[$val]);
    $number = floor($number);
    if($number > 1){
      $periods = $dansk_flertal;
    }else{
      $periods = $dansk_ental;
    }
    $text = sprintf("%d %s ", $number, $periods[$val]);
 
    if (($recursive == 1) && ($val >= 1) && (($current_time - $new_time) > 0)){
        $text .= time_ago($new_time);
    }
    return $text;
}
Avatar billede egzonrh Nybegynder
15. april 2009 - 19:38 #11
Det virker:)..
Bortset fra en ting.
Normalt på engelsk står der "2 days old".

Du har lavet tiderne til dansk. Men ved du hvor "old" er?. Den kan jeg ikke finde.
Avatar billede egzonrh Nybegynder
15. april 2009 - 19:39 #12
Eller jo jeg fandt den. 2 sekunder.
Avatar billede egzonrh Nybegynder
15. april 2009 - 19:40 #13
Jeg har rettet det. Den lå her:
    <td class="size"><?=$item['size']['num']?><span><?=$item['size']['str']?></span></td>
            <td class="time"><?=time_ago($item['mtime'])?> old</td>
            <?=isDL('<td class="dl"><a href="'.$this_script.'?download='.$item['name'].'.'.$item['ext'].'"><img src="'.$this_script.'?image=download" alt="Download '.$item['name'].'.'.$item['ext'].'" /></a></td>')?>
        </tr>
Avatar billede jakobdo Ekspert
15. april 2009 - 19:44 #14
Så får du et svar.
Avatar billede egzonrh Nybegynder
15. april 2009 - 19:45 #15
Jeg troede at den er lavet færdig, men da jeg afprøvede den fil der havde "æ" bogstavet, så virkede det ikke med at åbne det. Det virker med dem der ikke har æ, ø og å.

Kan du prøve at finde ud af det?

Eller jeg har en bedre idé.
Som jeg har sendt et billede af det her, så man kan se navnet, størrelsen og en disket ikon.

Når man trykker på navnet, så åbnes filen i browseren.
Når man trykker på disketten, så kommer download boksen til at gemme det på computeren.

Kan du lave sådan at når man trykker på navnet, så kommer download boksen? Så er alle problemmer løst.
Avatar billede egzonrh Nybegynder
15. april 2009 - 19:48 #16
Glemte at sige:
Når man trykker på disketten på "Vedtægter" med æ, så kommer download boksen.
Der er ingen problemer i det.

Hvis man også kunne gør det med navnet ville det være meget flot.
Avatar billede egzonrh Nybegynder
15. april 2009 - 20:01 #17
Avatar billede egzonrh Nybegynder
15. april 2009 - 20:04 #18
Jeg har selfølgelig accepteret dit svar. Du har hjulpet mig meget.
Tak.

Jeg har lige også lagt mærke til en ting til:
Filerne bliver sorteres i alfabetisk ordning.
Jeg vil helst have at de bliver sorteret efter dato.

Hvis du kan finde ud af den? Hvis ikke så er det også fint.
Avatar billede jakobdo Ekspert
15. april 2009 - 20:40 #19
Ang. sortering, kan du ikke rette:

//sort our files
if($_GET['sort']=="date") {
    @ksort($dirs, SORT_NUMERIC);
    @ksort($files, SORT_NUMERIC);
}
elseif($_GET['sort']=="size") {
    @natcasesort($dirs);
    @ksort($files, SORT_NUMERIC);
}
else {
    @natcasesort($dirs);
    @natcasesort($files);
}

til:

//sort our files
if($_GET['sort']=="name") {
    @natcasesort($dirs);
    @natcasesort($files);
}elseif($_GET['sort']=="size") {
    @natcasesort($dirs);
    @ksort($files, SORT_NUMERIC);
}else {
    @ksort($dirs, SORT_NUMERIC);
    @ksort($files, SORT_NUMERIC);
}

Det med forskellen på download via diskette eller filnavn, kan du ikke finde de 2 steder i koden, og sammenligne hvilket kald der laves ?

Og takker for point.
Avatar billede egzonrh Nybegynder
15. april 2009 - 20:54 #20
Det var så lidt.

Du skal bare vide en ting. Jeg aner næsten ikke noget om script:)..
For et par dage begyndte jeg at redigere i script. Jeg synes ikke det er helt svært, men alligevel er der rigtig mange ting jeg ikke ved.

Hvor er det præcis jeg skal indtaste koden henne?

Jeg ved desværre ikke hvordan jeg skal sammenligne kaldene. Og hvordan jeg skal rette det.
Avatar billede jakobdo Ekspert
15. april 2009 - 20:55 #21
Har du rettet, så sorteringen er korrekt nu ?
Avatar billede egzonrh Nybegynder
15. april 2009 - 21:01 #22
Jeg har prøvet et par steder at indtaste det, men det virker ikke.
Hvis du kunne vise mig hvor koden helt præcist skal være, ville det være en stor hjælp.
Avatar billede jakobdo Ekspert
15. april 2009 - 21:06 #23
Jamen som jeg skriver:

Fjern:

//sort our files
if($_GET['sort']=="date") {
    @ksort($dirs, SORT_NUMERIC);
    @ksort($files, SORT_NUMERIC);
}
elseif($_GET['sort']=="size") {
    @natcasesort($dirs);
    @ksort($files, SORT_NUMERIC);
}
else {
    @natcasesort($dirs);
    @natcasesort($files);
}

Og erstat med:

//sort our files
if($_GET['sort']=="name") {
    @natcasesort($dirs);
    @natcasesort($files);
}elseif($_GET['sort']=="size") {
    @natcasesort($dirs);
    @ksort($files, SORT_NUMERIC);
}else {
    @ksort($dirs, SORT_NUMERIC);
    @ksort($files, SORT_NUMERIC);
}
Avatar billede egzonrh Nybegynder
15. april 2009 - 21:07 #24
Jeg har lige kigget hele scriptet igennem.
Tror faktisk at man kun skal redigere i "Functions" for de her 2 ting.
Avatar billede jakobdo Ekspert
15. april 2009 - 21:12 #25
Jamen fint, så kan du jo selv klare resten. :o)
Avatar billede egzonrh Nybegynder
15. april 2009 - 21:14 #26
Jeg kan desværre ikke finde den kode:(
Avatar billede egzonrh Nybegynder
15. april 2009 - 21:14 #27
Men der er et sted hvor der står:
// Sort folder list.
if($folder_list)
    $folder_list = php_multisort($folder_list, $sort);
// Sort file list.
if($file_list)
    $file_list = php_multisort($file_list, $sort);
// Calculate the total folder size
if($file_list && $folder_list)
    $total_size = bytes_to_string($total_size, 2);
Avatar billede jakobdo Ekspert
15. april 2009 - 21:17 #28
Underligt, for jeg kan fint finde det i dit første indlæg.

Søg efter: //sort our files

Det er lige over <doctype...>
Avatar billede egzonrh Nybegynder
15. april 2009 - 21:20 #29
Jeg er virkelig forvirret lige nu..):
Aner seriøst ikke hvor den kode står henne.

Jeg har søgt efter:
1. sort our files
2. SORT_NUMERIC);
3. natcasesort

Kan ikke finde de ord.
Avatar billede egzonrh Nybegynder
15. april 2009 - 21:21 #30
Nåår. Det første indlæg.
Det var version 1 af Directory List.

Senere har jeg skrevet version 2 ind, som jeg for nyligt fandt.
Avatar billede jakobdo Ekspert
15. april 2009 - 21:28 #31
Ahh sorry, så er jeg selv lidt lost.
Har du et sted jeg kan hente scriptet og måske lege lidt med det ?
Avatar billede egzonrh Nybegynder
15. april 2009 - 21:33 #32
Selfølgelig, det er også meget letter når scriptet åbnes med Notepad.

Link:
http://greg-j.com/phpdl/

Du kan se billede/versionen ved at trykke på:
Demo PHPDL v2: PHPDL v2

Du kan downloade scriptet ved at trykke på:
Download PHPDL v2: PHPDL-v2.zip
Avatar billede jakobdo Ekspert
15. april 2009 - 21:38 #33
* @var $sort            Set the default sorting properties. The first array sets the
*                         initial sort column and order whereas the second array sets
*                         the sort column and order for items that match the first array's
*                         paramters

$sort                =    array(
                            array('key'=>'lname',    'sort'=>'asc'),
                            array('key'=>'size',    'sort'=>'asc')
                        );

Så jeg tror som udgangspunkt ikke det kan sortere efter dato.
Avatar billede jakobdo Ekspert
15. april 2009 - 21:38 #34
Måske du kan lave noget:

$sort = array(
array('key'=>'mtime', 'sort'=>'asc'),
array('key'=>'lname',    'sort'=>'asc'),
array('key'=>'size',    'sort'=>'asc')
);
Avatar billede egzonrh Nybegynder
16. april 2009 - 15:37 #35
Du er så klog:)

Bortset fra at de bliver sorteret efter længst tid.

De nyeste skal være de første.
Altså skal listen begynde oppefra.

Kan du finde ud af det?
Avatar billede jakobdo Ekspert
16. april 2009 - 15:47 #36
Ja, ret asc til desc
Avatar billede egzonrh Nybegynder
16. april 2009 - 15:58 #37
Problem løst:) Tak.

Så er der en helt sidste problem:
Normalt, når man trykker på navnet, så åbnes filen i browseren (fx en pdf fil).

Jeg vil have sådan at når man trykker på filnavnet, så skal download boksen komme for at gemme.

Kan du prøve at løse det problem?

Jeg ved godt du har sagt at jeg bare skal sammenligne scripterne med disketten og filnavnet.
Men desværre ved jeg ikke så meget om script:(
Avatar billede jakobdo Ekspert
16. april 2009 - 16:04 #38
Jeg tror du skal rette:

href="<?=$item['name']?>/"

til:

href="'.$this_script.'?download='.$item['name'].'.'.$item['ext'].'"
Avatar billede egzonrh Nybegynder
16. april 2009 - 16:12 #39
Jeg kan desværre ikke finde det:(.

Under hvilken gruppe står det på?
Avatar billede egzonrh Nybegynder
16. april 2009 - 16:17 #40
Jeg har fundet flere steder hvor der står:
href="<?=$item['name']

Men det der ?>/" mangler der.
Avatar billede jakobdo Ekspert
16. april 2009 - 17:25 #41
Jeg tror det er her det skrives:

<!-- files -->
<? if($file_list): ?>
<? foreach($file_list as $item) : ?>
        <tr class="file">
            <td class="name"><img src="<?=$this_script?>?image=<?=$item['ext']?>" alt="<?=$item['ext']?>" /> <?=$item['link']?></td> <-------------------------!!!!!
Avatar billede egzonrh Nybegynder
16. april 2009 - 19:46 #42
Jeg har fundet det sted hvor du lige nævner, men jeg har ikke fundet href="<?=$item['name']?>/" på det sted.
Avatar billede egzonrh Nybegynder
16. april 2009 - 19:49 #43
Jeg har også prøvet:
<!-- files -->
<? if($file_list): ?>
<? foreach($file_list as $item) : ?>
        <tr class="file">
            <td class="name"><img src="<?=$this_script?>?image=<?=$item['ext']?>" alt="<?=$item['ext']?>" /> <?=$item['link']?></td> href="<?=$item['name']?>/"

Det virker ikke.
Avatar billede egzonrh Nybegynder
16. april 2009 - 20:00 #44
Jeg har fundet stedet. Det lå et par linjer oppe end det sted du viste mig lige før.

Jeg har ændret det. Der skete ikke nogen forandringer:(
Avatar billede jakobdo Ekspert
16. april 2009 - 20:39 #45
Du har følgende kode:

<!-- files -->
<? if($file_list): ?>
<? foreach($file_list as $item) : ?>
        <tr class="file">
            <td class="name"><img src="<?=$this_script?>?image=<?=$item['ext']?>" alt="<?=$item['ext']?>" /> <?=$item['link']?></td>
            <td class="size"><?=$item['size']['num']?><span><?=$item['size']['str']?></span></td>
            <td class="time"><?=time_ago($item['mtime'])?> old</td>
            <?=isDL('<td class="dl"><a href="'.$this_script.'?download='.$item['name'].'.'.$item['ext'].'"><img src="'.$this_script.'?image=download" alt="Download '.$item['name'].'.'.$item['ext'].'" /></a></td>')?>
        </tr>
<? endforeach; ?>
<? endif; ?>
<!-- /files -->

Prøv at ret til:

<!-- files -->
<? if($file_list): ?>
<? foreach($file_list as $item) : ?>
    <tr class="file">
        <td class="name"><img src="<?=$this_script?>?image=<?=$item['ext']?>" alt="<?=$item['ext']?>" /><a href="<?=$this_script?>?download=<?=$item['name']?>.<?=$item['ext']?>"></td>
        <td class="size"><?=$item['size']['num']?><span><?=$item['size']['str']?></span></td>
        <td class="time"><?=time_ago($item['mtime'])?> old</td>
        <?=isDL('<td class="dl"><a href="'.$this_script.'?download='.$item['name'].'.'.$item['ext'].'"><img src="'.$this_script.'?image=download" alt="Download '.$item['name'].'.'.$item['ext'].'" /></a></td>')?>
    </tr>
<? endforeach; ?>
<? endif; ?>
<!-- /files -->
Avatar billede egzonrh Nybegynder
16. april 2009 - 21:10 #46
Nu er hele teksten væk:(
Avatar billede egzonrh Nybegynder
16. april 2009 - 21:11 #47
Selfølgelig har jeg rettet det tilbage..
Avatar billede jakobdo Ekspert
16. april 2009 - 21:19 #48
For pokker da, kunne du ikke snart selv finde bare ud af en lille smule selv...

Du har koden:

// Build links. Add interactivity. Be cool.
            if(in_array($item['ext'], array('jpg', 'jpeg', 'png', 'gif', 'bmp'))) // thickbox for images
            {
                $item['link'] = '<a class="thickbox" href="'.$item['name'].'.'.$item['ext'].'">'.$item['name'].'.'.$item['ext'].'</a>';
            }
            elseif(in_array($item['ext'], array('mov', 'mpg', 'mpeg'))) // thickbox for quicktime
            {
                $item['link'] = '<a class="thickbox" href="'.$this_script.'?display=quicktime&file='.$item['name'].'.'.$item['ext'].'&TB_iframe=true&width='.$vWidth.'&height='.$vHeight.'">'.$item['name'].'.'.$item['ext'].'</a>';
            }
            elseif($item['ext'] == 'flv') // thickbox for flv's'
            {
                $item['link'] = '<a class="thickbox" href="'.$this_script.'?display=flv&file='.$item['name'].'.'.$item['ext'].'&TB_iframe=true&width='.$vWidth.'&height='.$vHeight.'">'.$item['name'].'.'.$item['ext'].'</a>';
            }
            elseif($item['ext'] == 'mp3') // thickbox for mp3's'
            {
                $item['link'] = '<a class="thickbox" href="'.$this_script.'?display=mp3&file='.$item['name'].'.'.$item['ext'].'&TB_iframe=true&width=200&height=20">'.$item['name'].'.'.$item['ext'].'</a>';
            }
            else // standard link
            {
                $item['link'] = '<a href="'.$item['name'].'.'.$item['ext'].'">'.$item['name'].'.'.$item['ext'].'</a>';
            }

Hvis du erstatter ovenstående med:

$item['link'] = '<a href="'.$item['name'].'.'.$item['ext'].'">'.$item['name'].'.'.$item['ext'].'</a>';
Avatar billede egzonrh Nybegynder
16. april 2009 - 21:36 #49
Som jeg før har fortalt, så er jeg en 100% begynder til script.
Det eneste jeg har lært de seneste par dage er: Hvordan jeg ændrer teksten.
Og "True/False".
Ikke mere. Jeg har heller ikke brugt tid på at lære det.

Og jeg har faktisk også prøvet at sammenligne disketten med teksten. De var vidt forskellige.

Jeg har erstattet koden. Der sker ikke noget. Der bliver ikke ændret noget.

Kan vi ikke bare sige farvel for denne gang. Det er lige ved at gå i vasken.

Og jeg takker selfølgelig for din hjælp. Du har hjulpet mig meget. Tak.
Avatar billede jakobdo Ekspert
16. april 2009 - 21:42 #50
Har du etstattet alle de mange kodelinjer, med blot den ene linje ?
Og det virker ikke siger du ?

Vis mig evt. gerne din fulde kode nu, måske jeg kan se fejlen.
Avatar billede egzonrh Nybegynder
16. april 2009 - 21:43 #51
Det jeg glemte at sige var:
Diskettens script er:

function isDL($true, $false = '')
{
    global $ext_filter;
   
    if(!in_array('*', $ext_filter))
    {
        return $true;   
    }
    else
    {
        return $false;
    }
}

Den sammenlignede jeg lidt med funktionen af teksten. Ingen rigtig resultater for mig.
Avatar billede jakobdo Ekspert
16. april 2009 - 21:45 #52
Den funktion skal du ikke gøre noget ved, det er ikke der.
Vis mig gerne hele din kode.
Avatar billede egzonrh Nybegynder
16. april 2009 - 21:49 #53
Her:

            // Organize file info.
            $item['name']        =    $info['filename'];
            $item['lname']        =    strtolower($info['filename']);
            $item['ext']        =    $info['extension'];
                if($info['extension'] == '') $item['ext'] = '.';
            $item['bytes']        =    $stat['size'];
            $item['size']        =    bytes_to_string($stat['size'], 2);
            $item['mtime']        =    $stat['mtime'];
           
            $item['link'] = '<a href="'.$item['name'].'.'.$item['ext'].'">'.$item['name'].'.'.$item['ext'].'</a>';
            }
           
            // Add files to the file list...
            if($info['extension'] != '')
Avatar billede jakobdo Ekspert
16. april 2009 - 21:51 #54
Og hvad så der hvor du udskriver $item['link'] ??
Avatar billede egzonrh Nybegynder
16. april 2009 - 21:51 #55
Nåår HELE den fulde kode?
Avatar billede egzonrh Nybegynder
16. april 2009 - 21:55 #56
Jeg har bare erstattet koderne, som du sagde.

At jeg skulle erstatte rigtig mange linjer med kun en linje.
(Indlæg 48)
Avatar billede jakobdo Ekspert
16. april 2009 - 21:55 #57
Ja, det er vel stadig "bare" koden fra tidligere indlæg vi retter i ikke ?
Avatar billede jakobdo Ekspert
16. april 2009 - 21:59 #58
Du skal rette linjen til:

$item['link'] = '<a href="'.$this_script.'?download='.$item['name'].'.'.$item['ext'].'">'.$item['name'].'.'.$item['ext'].'</a>';

Så virker det. :o)
Avatar billede egzonrh Nybegynder
16. april 2009 - 22:07 #59
Og du har ret:).
Det virker. Jeg siger mange tak for din stor hjælp. Uden dig ville den her liste slet ikke blive så god. Download listen er også vigtig for min hjemmeside.

Skal jeg skrive dit navn som "Tak til.. for at have.."?
Avatar billede jakobdo Ekspert
16. april 2009 - 22:11 #60
Nej tak, det gør lige meget.
Hjælpen i sig selv er nok.
Du kan sende mig 100K, den dag du vinder millionen i Lotto. :o)
Avatar billede egzonrh Nybegynder
16. april 2009 - 22:16 #61
Det kommer an på om jeg vinder 48 kr. eller 8 millioner:).

Ejj, men endnu en gang tak.
Jeg ved godt at den her script har været meget besværligt.
Avatar billede egzonrh Nybegynder
16. april 2009 - 22:17 #62
Jeg indtaster lige den endelig script, hvis der skulle ske noget:
Avatar billede egzonrh Nybegynder
16. april 2009 - 22:18 #63
<?

####################################################################################################################################
####################################[[[ SCROLL TO BOTTOM OF THIS FILE TO CHANGE THE TEMPLATE ]]]####################################
####################################################################################################################################

/**
* PHPDL - PHP Directory Lister
*
* {@link http://greg-j.com/some-url PHDL} is an all-in-one directory listing script.
* What sets it apart from other scripts of similar nature is that it includes all
* its resources in itself in base64 format, allowing PHPDL to deliver an asthetic
* and interactive experience without the need for any external files.
*
* @name                    PHPDL
* @version                2.0
* @author                Greg Johnson <greg@greg-j.com>
* @link                    http://greg-j.com/some-url
* @license                http://creativecommons.org/licenses/by-sa/3.0/us/
*/


/** ---------------------------------------------------------------------------------------------------------------------[ SETTINGS ]
*
* @var $ext_filter        Excludes file types from being downloaded. If you have PHPDL
*                         in a directory with other php files you do not want people to
*                         be able to see the source of, do not change this.
*
*                         Adding the value '*' will disable the feature altogether.
*
* @var $sort            Set the default sorting properties. The first array sets the
*                         initial sort column and order whereas the second array sets
*                         the sort column and order for items that match the first array's
*                         paramters
*
* @var $vWidth            Width of the popup video player
* @var $vHeight            Height of the popup video player
*/
$ext_filter            =    array('php', 'php4', 'php5');

$sort = array(
array('key'=>'mtime', 'sort'=>'desc'),
array('key'=>'lname',    'sort'=>'desc'),
array('key'=>'size',    'sort'=>'desc')
);

$vWidth                =    '800';
$vHeight            =    '450';


/** ---------------------------------------------------------------------------------------------------------------[ EMBEDED IMAGES ]
* @desc                    Are we requesting a file type icon? If so, deliver the appropriate
*                         image for the file extension being requested.
*/
if(isset($_GET['image']))
{
    // Accomidate uppercase & lowercase file extensions
    $image = strtolower($_GET['image']);
    // Set filetypes (most of this list is from http://www.filezed.com)
    $filetype = array(
        'text'        => array('doc', 'docx', 'txt', 'rtf', 'odf', 'text', 'nfo'),
        'audio'        => array('aac', 'mp3', 'wav', 'wma', 'm4p'),
        'graphic'    => array('ai', 'bmp', 'eps', 'gif', 'ico', 'jpg', 'jpeg', 'png', 'psd', 'psp', 'raw', 'tga', 'tif', 'tiff'),
        'video'        => array('mv4', 'bup', 'mkv', 'ifo', 'flv', 'vob', '3g2', 'bik', 'xvid', 'divx', 'wmv', 'avi', '3gp', 'mp4', 'mov', '3gpp', '3gp2', 'swf', 'mpg', 'mpeg'),
        'archive'    => array('7z', 'dmg', 'rar', 'sit', 'zip', 'bzip', 'gz', 'tar'),
        'app'        => array('exe', 'msi', 'mse', 'bat'),
        'script'    => array('js', 'html', 'htm', 'xhtml', 'jsp', 'asp', 'aspx', 'php', 'xml', 'css')
    );

    // Set the mimetype and cache the image for a year so we don't have to call them again.
    header("Content-type: image/png");
    header('Expires: ' . gmdate('D, d M Y H:i:s', time() + 60 * 60 *24 * 365) . ' GMT');

    // Deliver the correct image ...
    if($image == '.')                                    echo base64_decode('iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAk1JREFUeNqMU01oE0EU/mY2u22qMSE2UaFKiwdLD0WE+nPx6MFDQfGmBw9evSmKeBE8C/XixZvowR+QXlQQb14KaiAnY9OKjU0Q11hSN012Z8b3JrtJWhBc+JidN+/75nvv7YrKggQ/QuAiLYfwf883Y/CYX1ImjlBgcvLC/bvd5hrC1g+4mSK87ASt+yGkM6A6DioPz91Otiml+0fS230A7tg+GGgSqWPLX8Vm9T1yM/PkUPScui6II/skFoghtYqgux2Ybgh3tIDM5Cm021uoN36h+bsFe07g3IQ37MAxSoFhS7J9EWi1/mAsDLFJyKRdSIoRp19TKtohwDf07UmJIOhgJArtXtFqSIA4DvWM+0YCaiCgVWiTBgoCId2sYlF7RjHisIOjJFCS7CBGStOJjqIhKBKglUQSGNrP3YxuUP4ltdOBiZtkL6dxtfwGCXBZSQldGqnARruduNgmQA7olrgErr/07hnGD58kYgTPc2wJkr6JZhCwQMrmfVoFb2yAbasY/B5ycCRjRXO7XLsawpWVvTafefL6I42PJNKJhNebcxgjQsQ90VEPcXlaK/h+YPOZx19U+tYTnd8IsIfnomnIOv4eNDXJdbxtkBC49ir7/HUJL4iX5jpGCfkPK2gU374sH5k9fjCbL+YEidW+fvlZKt8rc63jGXSSZi030HjwRlWYywJNxud1c/VYdWm+vrx0JleYmJ6anpsiM9U7T9Xl0zPSP39C9AUod9D54X+ULC/SfBfXv9dma2u1s1qjQGGf0PnXf/1XgAEADr97lE6is6IAAAAASUVORK5CYII=');
    elseif($image == 'pdf')                                echo base64_decode('iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHhSURBVDjLjZPLSxtRFIfVZRdWi0oFBf+BrhRx5dKVYKG4tLhRqlgXPmIVJQiC60JCCZYqFHQh7rrQlUK7aVUUfCBRG5RkJpNkkswrM5NEf73n6gxpHujAB/fOvefjnHM5VQCqCPa1MNoZnU/Qxqhx4woE7ZZlpXO53F0+n0c52Dl8Pt/nQkmhoJOCdUWBsvQJ2u4ODMOAwvapVAqSJHGJKIrw+/2uxAmuJgFdMDUVincSxvEBTNOEpmlIp9OIxWJckMlkoOs6AoHAg6RYYNs2kp4RqOvfuIACVFVFPB4vKYn3pFjAykDSOwVta52vqW6nlEQiwTMRBKGygIh9GEDCMwZH6EgoE+qHLMuVBdbfKwjv3yE6Ogjz/PQ/CZVDPSFRRYE4/RHy1y8wry8RGWGSqyC/nM1meX9IQpQV2JKIUH8vrEgYmeAFwuPDCHa9QehtD26HBhCZnYC8ucGzKSsIL8wgsjiH1PYPxL+vQvm5B/3sBMLyIm7GhhCe90BaWykV/Gp+VR9oqPVe9vfBTsruM1HtBKVPmFIUNusBrV3B4ev6bsbyXlPdkbr/u+StHUkxruBPY+0KY8f38oWX/byvNAdluHNLeOxDB+uyQQfPCWZ3NT69BYJWkjxjnB1o9Fv/ASQ5s+ABz8i2AAAAAElFTkSuQmCC');
    elseif($image == 'download')                        echo base64_decode('iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAftJREFUeNqkU0trE1EUPnceIWbRTMe0625ciZDfIM1KKKm/oP0JXXYjxY1L+w+s4EaoEAQpuFE3IqJSWhDpooxYiAvtI5kkdzL34TlnOpNJZ+lhDvd1zne/8825wloL/2NePnnbe9UOW0vdhaAZLTSDSAhnLnAyGQej4bDdP/sVra6t7+X7ghi82X+5EYbhM6M13Ll7D8LlZUjGY6CzCY6e74M1Bg4/f4L6rQaMRvFeZ219kwD4mlqt9jRNU1AIoDGwbB8/vIOjr194rvE8Hg7A87yN/RfPuzMA3w/o9tzLdjUYQBzHBQCxmiYJjtAuNMgPSE9iMmeohcSE6TRhho4QYIyFIQIXAEopXhDI6ckPnruug4EG7nc6vP5+fMRrhU5xeakZANHGTYOepgqOv2HNlj7LSeY6iYxut9Yw61kJSnMwfcaa68AsKEtmfkUygSmtZgAykRicHQissbm4CHMNhvPzv3+wVM0XcAm6VML5xQUn3m4twYPuQ6g3GpWOk9gPB6978Lvfz9ipOQZTVreFDSQcAaPBVQXAcV0IwhB+RlEmZlkDKSUDkICO44Dr+RUAAqa/JWWS6VV+C4gYYUUrueLG6CoDcFnMUnKv6ES0LfRL3kAGtXq94q7nloXd3d55fFgwwEXvyc6j9xjA7WlvvIcbdpknk/0TYADQcEsPXv/LfAAAAABJRU5ErkJggg==');
    elseif(in_array($image, $filetype['text']))            echo base64_decode('iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAADoSURBVBgZBcExblNBGAbA2ceegTRBuIKOgiihSZNTcC5LUHAihNJR0kGKCDcYJY6D3/77MdOinTvzAgCw8ysThIvn/VojIyMjIyPP+bS1sUQIV2s95pBDDvmbP/mdkft83tpYguZq5Jh/OeaYh+yzy8hTHvNlaxNNczm+la9OTlar1UdA/+C2A4trRCnD3jS8BB1obq2Gk6GU6QbQAS4BUaYSQAf4bhhKKTFdAzrAOwAxEUAH+KEM01SY3gM6wBsEAQB0gJ+maZoC3gI6iPYaAIBJsiRmHU0AALOeFC3aK2cWAACUXe7+AwO0lc9eTHYTAAAAAElFTkSuQmCC');
    elseif(in_array($image, $filetype['audio']))        echo base64_decode('iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAdRJREFUeNqkU89rE1EQ/maz2STbQKTV1AqRWovFBgKCQsFToEfRmxfBP0DwIl56KkUPglfP0lOhBQVpDz305EmpeNAWPAQaSBoDTUuz2SabZN97nRdN0uqmFhz49s3Oj+8x82ZIKYX/EbOrPNwYGKNvGGEcdA0rs32ncc6LnulPva5weChPOc5LMMe4f2YJmn2QFAo/c6nU2JIQyPLvZiBBsegPJIhGk3e2t0vriURyzXHkLSBS+osgHnMRMsPwpY1crnWKIBIhxzQvZnd3yx8N49IrNj0e2APbNjAxYUEpowfPI/i+0SQafaRU40FgCSclHjcwNWWhst+3xWJAq4WyEJbxT4JfdQNXxoA2t4aIA0MdvdZo4NpZz5hQUrxmbDEUQSjLFAiHBDp6uJOcDyTw2000G+6yHXOfT07K9M1p4jIIbnVP1GsHkNInnVxaXQieg/1yUR/ZdCaNvYqeNomjqqPtO9ohvn3AzruXv6PnewTUXSYrlYF9b2Hz6vXU7eHL46hVayjkfsDLf33qfVl+0y5+7y/HiQXsERDRBUreyNDdJy9gDc1wWAX5T4vy89v37NaD4TCqDJdz/CCCqJ4Z/QCM0B/NFYwmw9NknNPbqGMBBgDJpb7OvDYMdwAAAABJRU5ErkJggg==');
    elseif(in_array($image, $filetype['graphic']))        echo base64_decode('iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAdlJREFUeNqkkz9v00AYxp9zzvblLnac0lLiUKpmKFKDqGBgQ0KCoQsDCxJVP0A/RAcGRsTMgtQpEh3oF+haNia2qiukCzSlieP4b987d+hIk5Ne2Wf5+d3z/jlWliXmWRbmXPz9wcFrerZn1A94lmXhh+3tz7Oo9/r9XZ6lKSuoDs8/MVgMsGtkiyLJAF0dX1TBKdnuItAjr1kBvH1aQmt5kiTICbB5n8Hl9HMdWFTA2T+gbldiEHgYAY9CYLMDRCmMRmv5NEmY3oSNY6zfW0NLhebkh8vAsleBJiTo3qlgU3IWiAqgtXwaxywvChz9+ILvQmLryRu86L00lh1e2daABQmkOX2j9KRLANJorQGktDk5PUHQDPD1ch8Xl7+wsvQA7YUV3PVbqDs6D2mAygEEpRbn14A4ji1j56KDPyOO8V8H34Y/URenUFJBKQWv4Zloej6BQ6wtdfBs1YXWagDLyEG3/QqO48B1XUgp4XkKQeCbaLVI3FTwqQhS2rCERZ2INMA4MG28ufR4Z9SrKErA2ITeLYzHJc7PcwghzCGPe2UFOBsMajXbxuHHd/85PjQEmKBmO9Ba5m9s7FiNRjjLJBaj0W8aEVBdEeh7cUs9TQSGbN7rfCXAAJNovyFuktgQAAAAAElFTkSuQmCC');
    elseif(in_array($image, $filetype['video']))        echo base64_decode('iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAdxJREFUeNqMU81KI0EQ7t9EhNU3CHjw4s0nyLKEnLz5HotP4AP4AAp5B2FZ2BxCDsoKQm57yhIU3Bwig2IwEyczY3fVVo2dTUY3uzb0dHfV91V9XdUjEVF0u90zIUS92WyeineMTqezT8t5o9H4aNgAAHVaJM3To6OTndksAw5MAwFQ8B4RsFKx6vDw4CfhGVsA5gFEMHxJkhTG48dnIgUyiPneWsNEBXwIYzkAO78655BnkZTIjKUzjEZR7r1nol5WoPhDDhGcynvgBMgf2mOaZv7q6tfs7m5MATBgPDLnTwBWQAaOqhnE2cmEee7h5maUpqnzWluG4wvGy6B6oSDcS5F6YD+Z8Pb2IXNOeGMqgqeUxY3Vizq/qAHdkZySFXR7vW9VWqtRFLnBYCBft5BgGSvA0CYzVxCKcr67u5ckycxvbt5nW1ufYJlsjFbt9rHhIpe6EAJwtu+IEvIcnRAWrLWl7EotalB6B3yFYLj0XlMA4a1dW/UQ9b8U9Ki4TkqN1lb/RmaieaMgp5TB8ANR50pxxXGVggrhywomk0nRBSrsNaKKtTYr2YT5EMdxuQv9fv+iVquxIWq1Pm//72+cTqc4HA4vintzIEq+TvuN+cN6x+D2xsR9+i3AAEgKanVYjEzGAAAAAElFTkSuQmCC');
    elseif(in_array($image, $filetype['archive']))        echo base64_decode('iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAEUSURBVCjPXdFNSsMAEIbh0Su4teAdIgEvJB5C14K4UexCEFQEKfivtKIIIlYQdKPiDUTRKtb0x6ZJ+volraEJ3+zmycwkMczGzTE3lwkbxeLE5XTqQfTIjhIm6bCy9E/icoOoyR4v7PLDN+8ibxQHxGzE3JBfHrgUalDnQ6BNk1WRFPjs66kDNTxqg0Uh5qYg4IkrjrS9pTWfmvKaBaGaNU4EY+Lpkq88eKZKmTAhbd3i5UFZg0+TzV1d1FZy4FCpJCAQ8DUnA86ZpciiXjbQhK7aObDOGnNsUkra/WRAiQXdvSwWpBkGvQpnbHHMRvqRlCgBqkm/dd2745YbtofafsOcPiiMTc1fzNzHma4O/XLHCtgfTLBbxm6KrMIAAAAASUVORK5CYII=');
    elseif(in_array($image, $filetype['app']))            echo base64_decode('iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFiSURBVBgZpcEhbpRRGIXh99x7IU0asGBJWEIdCLaAqcFiCArFCkjA0KRJF0EF26kkFbVVdEj6/985zJ0wBjfp8ygJD6G3n358fP3m5NvtJscJYBObchEHx6QKJ6SKsnn6eLm7urr5/PP76cU4eXVy/ujouD074hDHd5s6By7GZknb3P7mUH+WNLZGKnx595JDvf96zTQSM92vRYA4lMEEO5RNraHWUDH3FV48f0K5mAYJk5pQQpqIgixaE1JDKtRDd2OsYfJaTKNcTA2IBIIesMAOPdDUGYJSqGYml5lGHHYkSGhAJBBIkAoWREAT3Z3JLqZhF3uS2EloQCQ8xLBxoAEWO7aZxros7EgISIIkwlZCY6s1OlAJTWFal5VppMzUgbAlQcIkiT0DXSI2U2ymYZs9AWJL4n+df3pncsI0bn5dX344W05dhctUFbapZcE2ToiLVHBMbGymS7aUhIdoPNBf7Jjw/gQ77u4AAAAASUVORK5CYII=');
    elseif(in_array($image, $filetype['script']))        echo base64_decode('iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJwSURBVDjLjZPdT1JhHMetvyO3/gfLKy+68bLV2qIAq7UyG6IrdRPL5hs2U5FR0MJIAqZlh7BVViI1kkyyiPkCyUtztQYTYbwJE8W+Pc8pjofK1dk+OxfP+X3O83srAVBCIc8eQhmh/B/sJezm4niCsvX19cTm5uZWPp/H3yDnUKvVKr6ELyinwWtra8hkMhzJZBLxeBwrKyusJBwOQ6PRcJJC8K4DJ/dXM04DOswNqNOLybsRo9N6LCy7kUgkEIlEWEE2mwX9iVar/Smhglqd8IREKwya3qhg809gPLgI/XsrOp/IcXVMhqnFSayurv6RElsT6ZCoov5u1fzUVwvcKRdefVuEKRCA3OFHv2MOxtlBdFuaMf/ZhWg0yt4kFAoVCZS3Hd1gkpOwRt9h0LOES3YvamzPcdF7A6rlPrSbpbhP0kmlUmw9YrHYtoDku2T6pEZ/2ICXEQ8kTz+g2TkNceAKKv2nIHachn6qBx1MI5t/Op1mRXzBd31AiRafBp1vZyEcceGCzQ6p24yjEzocGT6LUacS0iExcrkcK6Fsp6AXLRnmFOjyPMIZixPHmAAOGxZQec2OQyo7zpm6cNN6GZ2kK1RAofPAr8GA4oUMrdNNkIw/wPFhDwSjX3Dwlg0CQy96HreiTlcFZsaAjY0NNvh3QUXtHeHcoKMNA7NjqLd8xHmzDzXDRvRO1KHtngTyhzL4SHeooAAnKMxBtUYQbGWa0Dc+AsWzSVy3qkjeItLCFsz4XoNMaRFFAm4SyTXbmQa2YHQSGacR/pAXO+zGFif4JdlHCpShBzstEz+YfJtmt5cnKKWS/1jnAnT1S38AGTynUFUTzJcAAAAASUVORK5CYII=');
    else                                                echo base64_decode('iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAABbSURBVCjPzdAxDoAgEERRzsFp95JbGI2ASA2SCOX3Ahtr8tuXTDIO959bCxRfpOitWS5vA+lMJg9JbKCTTmMQ1QS3ThqVQbBBlsbgpXLYE8lHCXrqLptf9km7Dzv+FwGTaznIAAAAAElFTkSuQmCC');
   
    // Exit this script when the correct image has been served
    exit();
}


/** ----------------------------------------------------------------------------------------------------------[ FORCE FILE DOWNLOAD ]
* @desc                    Process the request for direct file download based on the
*                         value(s) in the $ext_filter setting.
*/
if(isset($_GET['download']) && !in_array('*', $ext_filter))
{
    // Get the file to download
    $file = $_GET['download'];
   
    // Make sure the file is delivered properly.
    if(ini_get('zlib.output_compression'))
    {
        ini_set('zlib.output_compression', 'off');
    }

    // Prevent abuse
    $file = str_replace(array("/", ".."), "", $file);

    // Get file extension
    $file_extension = strtolower(substr(strrchr($file,"."),1));

    if (in_array($file_extension, $ext_filter))
    {
        exit('File Type Invalid');
    }
    elseif(!file_exists($file))
    {
        exit('File Does Not Exist');
    }

    // Special delivery
    header("Pragma: public");
    header("Expires: 0");
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
    header("Cache-Control: private",false);
    header("Content-type: application/force-download");
    header("Content-Disposition: attachment; filename=\"".basename($file)."\";" );
    header("Content-Transfer-Encoding: binary");
    header("Content-Length: ".filesize($file));
    readfile("$file");
    exit();
}

/** ---------------------------------------------------------------------------------------------------------------[ READ DIRECTORY ]
* @desc                    This is where all the magic happens. We read the current directory and
*                         build an array of images and folders to list.
*/
// Get this folder and files name.
$this_script = basename(__FILE__);
$this_folder = str_replace('/'.$this_script, '', $_SERVER['SCRIPT_NAME']);

// Declare vars used beyond this point.
$file_list = array();
$folder_list = array();
$total_size = 0;

// Open the current directory...
if ($handle = opendir('.'))
{
    // ...start scanning through it.
    while (false !== ($file = readdir($handle)))
    {
        // Make sure we don't list this folder, file or their links.
        if ($file != "." && $file != ".." && $file != $this_script)
        {
            // Get file info.
            $stat                =    stat($file); // ... slow, but faster than using filemtime() & filesize() instead.
            $info                =    pathinfo($file);
           
            // Organize file info.
            $item['name']        =    $info['filename'];
            $item['lname']        =    strtolower($info['filename']);
            $item['ext']        =    $info['extension'];
                if($info['extension'] == '') $item['ext'] = '.';
            $item['bytes']        =    $stat['size'];
            $item['size']        =    bytes_to_string($stat['size'], 2);
            $item['mtime']        =    $stat['mtime'];
           
                          $item['link'] = '<a href="'.$this_script.'?download='.$item['name'].'.'.$item['ext'].'">'.$item['name'].'.'.$item['ext'].'</a>';
           
            // Add files to the file list...
            if($info['extension'] != '')
            {
                array_push($file_list, $item);
            }
            // ...and folders to the folder list.
            else
            {
                array_push($folder_list, $item);
            }
            // Clear stat() cache to free up memory (not really needed).
            clearstatcache();
            // Add this items file size to this folders total size
            $total_size += $item['bytes'];
        }
    }
    // Close the directory when finished.
    closedir($handle);
}
// Sort folder list.
if($folder_list)
    $folder_list = php_multisort($folder_list, $sort);
// Sort file list.
if($file_list)
    $file_list = php_multisort($file_list, $sort);
// Calculate the total folder size
if($file_list && $folder_list)
    $total_size = bytes_to_string($total_size, 2);

   
/** -------------------------------------------------------------------------------------------------------------------[ FUNCTIONS ]
* @desc                    Define functions used in this script
*/


/**
* @author                http://us.php.net/manual/en/function.array-multisort.php#83117
* @desc                    Sorts a multidimensional array akin to sorting an SQL result
*/
function php_multisort($data,$keys)
{
    foreach ($data as $key => $row)
    {
        foreach ($keys as $k)
        {
            $cols[$k['key']][$key] = $row[$k['key']];
        }
    }
    $idkeys = array_keys($data);
    $i=0;
    foreach ($keys as $k)
    {
        if($i>0){$sort.=',';}
        $sort.='$cols['.$k['key'].']';
        if($k['sort']){$sort.=',SORT_'.strtoupper($k['sort']);}
        if($k['type']){$sort.=',SORT_'.strtoupper($k['type']);}
        $i++;
    }
    $sort .= ',$idkeys';
    $sort = 'array_multisort('.$sort.');';
    eval($sort);
    foreach($idkeys as $idkey)
    {
        $result[$idkey]=$data[$idkey];
    }
    return $result;
}

/**
* @author                http://us3.php.net/manual/en/function.filesize.php#84652
* @desc                    Gets a filesize in bytes, returns a string representation
*                         of that file in an easily readable format.
*/
function bytes_to_string($size, $precision = 0) {
    $sizes = array('YB', 'ZB', 'EB', 'PB', 'TB', 'GB', 'MB', 'KB', 'Bytes');
    $total = count($sizes);
    while($total-- && $size > 1024) $size /= 1024;
    $return['num'] = round($size, $precision);
    $return['str'] = $sizes[$total];
    return $return;
}

/**
* @author                http://us.php.net/manual/en/function.time.php#71342
* @desc                    Returns the time between now and timestamp provided
*/
function time_ago($timestamp, $recursive = 0){
    $current_time = time();
    $difference = $current_time - $timestamp;
    //$periods = array("second", "minute", "hour", "day", "week", "month", "year", "decade");
    $dansk_ental = array("sekund", "minut", "time", "dag", "uge", "måned", "år", "årti");
    $dansk_flertal = array("sekunder", "minutter", "timer", "dage", "uger", "måneder", "år", "årtier");

    $lengths = array(1, 60, 3600, 86400, 604800, 2630880, 31570560, 315705600);
    for ($val = sizeof($lengths) - 1; ($val >= 0) && (($number = $difference / $lengths[$val]) <= 1); $val--);
    if ($val < 0) $val = 0;
    $new_time = $current_time - ($difference % $lengths[$val]);
    $number = floor($number);
    if($number > 1){
      $periods = $dansk_flertal;
    }else{
      $periods = $dansk_ental;
    }
    $text = sprintf("%d %s ", $number, $periods[$val]);

    if (($recursive == 1) && ($val >= 1) && (($current_time - $new_time) > 0)){
        $text .= time_ago($new_time);
    }
    return $text;
}

/**
* @desc                    Used to allow download/show download icon based on disallowed file types
* @todo                    extend this function to base a files download elegibility on its relation
*                         to ini_get('memory_limit') && memory_get_usage() so files that are too
*                         big to process are not attempted.
*/
function isDL($true, $false = '')
{
    global $ext_filter;
   
    if(!in_array('*', $ext_filter))
    {
        return $true;   
    }
    else
    {
        return $false;
    }
}

/** ----------------------------------------------------------------------------------------------------[ TEMPLATE: DIRECTORY LIST ]
* @desc                    This is the template used for the directory listing
*/
if(!isset($_GET['display'])) :
?>
<!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>PHPDL - PHP Directory Lister</title>
<style type="text/css">
body{
    font-family: "Lucida Grande",Calibri,Arial;
    font-size: 9pt;
    color: #333;
    background: #ffffff;
}
a{
    color: #b00;
    font-size: 11pt;
    font-weight: bold;
    text-decoration: none;
}
a:hover{
    color: #000;
}
img{
    vertical-align: bottom;
    padding: 0 3px 0 0;
}
sup{
    color: #999;
}
table{
    margin: 0 auto;
    padding: 0;
    width: 600px;
}
    table td{
        padding: 5px;
    }
    thead td{
        padding-left: 0;
        font-family: "Trebuchet MS";
        font-size: 11pt;
        font-weight: bold;
    }
    tbody td.name{
        width: 99%;
    }
    tbody .folder td{
        border: solid 1px #ffffff;
    }
    tbody .file td{
        background: #fff;
        border: solid 1px #ddd;
    }
        tbody tr.file:hover td{
            background: #ffff9d;
        }
        tbody tr.file:hover td.dl{
            background: #ffffff;
        }
    tbody .file td.size,
    tbody .file td.time{
        white-space: nowrap;
        padding: 5px 10px;
    }
    tbody .file td.size span{
        color: #999;
        font-size: 8pt;
    }
    tbody .file td.time{
        color: #555;
    }
    tbody td.dl{
        padding: 5px 0;
        width: 1%;
        border-color: #f8f8f8;
        background: #ffffff;
    }
    tbody td.dl img{
        padding: 0 0 0 5px;
        border: none;
    }
    tfoot td{
        padding: 5px 0;
        color: #777;
        font-size: 8pt;
        background: #ffffff;
        border-color: #ffffff;
    }
    tfoot td.copy{
        text-align: right;
        white-space: nowrap;
    }
    tfoot td.cc{
        padding: 40px;
        text-align: center;
    }
    tfoot td.cc img{
        padding: 0;
        border: none;
    }
</style>
<link rel="stylesheet" type="text/css" href="<?=$this_script?>?resource=thickbox.css" />
<script type="text/javascript">
    var tb_pathToImage = "<?=$this_script?>?resource=loadingAnimation.gif";
</script>
<script type="text/javascript" src="<?=$this_script?>?resource=jquery.packed.js"></script>
<script type="text/javascript" src="<?=$this_script?>?resource=thickbox.packed.js"></script>
</head>

<body>
<table cellpadding="0" cellspacing="1">
    <thead>
        <tr>
            <td colspan="4"><?=$this_folder?></td>
        </tr>
    </thead>
    <tfoot>
        <tr>
            <td class="total"><? if($folder_list): ?>This folder has <?=count($file_list)?> files totaling <?=$total_size['num']?> <?=$total_size['str']?> in size<? endif; ?></td>

        </tr>
    </tfoot>
    <tbody>
<!-- folders -->
<? if($folder_list): ?>
<? foreach($folder_list as $item) : ?>
        <tr class="folder">
            <td colspan="<?=isDL('4','3')?>" class="name"><img src="<?=$this_script?>?image=<?=$item['ext']?>" alt="<?=$item['ext']?>" /> <a href="<?=$item['name']?>/">./<?=$item['name']?></a></td>
        </tr>
<? endforeach; ?>
<? endif; ?>
<!-- /folders -->
<!-- files -->
<? if($file_list): ?>
<? foreach($file_list as $item) : ?>
        <tr class="file">
            <td class="name"><img src="<?=$this_script?>?image=<?=$item['ext']?>" alt="<?=$item['ext']?>" /> <?=$item['link']?></td>
            <td class="size"><?=$item['size']['num']?><span><?=$item['size']['str']?></span></td>
            <td class="time"><?=time_ago($item['mtime'])?> siden</td>
            <?=isDL('<td class="dl"><a href="'.$this_script.'?download='.$item['name'].'.'.$item['ext'].'"><img src="'.$this_script.'?image=download" alt="Download '.$item['name'].'.'.$item['ext'].'" /></a></td>')?>
        </tr>
<? endforeach; ?>
<? endif; ?>
<!-- /files -->
    </tbody>                         
</table>
</body>
</html>

<?
/** ----------------------------------------------------------------------------------------------------------[ TEMPLATE: LIGHTBOX ]
* @desc                    This is the template used to display the lightbox popup
*/
else :
?>
<!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>PHPDL - lightbox</title>
<style type="text/css">
body{
    margin: 0;
    padding: 0;
}
div{
    text-align: center;
}
</style>
</head>
<body>
<div>
<? if($_GET['display'] == 'quicktime' && isset($_GET['file'])) :?>
    <embed
        src="<?=$_GET['file']?>"
        width="<?=$vWidth?>"
        height="<?=$vHeight?>"
        autoplay="true"
        controller="true"
        scale="aspect"
    />
<? endif; ?>
<? if($_GET['display'] == 'flv' && isset($_GET['file'])) :?>
    <embed
        src="<?=$this_script?>?resource=player.swf"
        width="<?=$vWidth?>"
        height="<?=$vHeight?>"
        allowscriptaccess="always"
        allowfullscreen="true"
        flashvars="file=<?=$_GET['file']?>&amp;autostart=true&amp;controlbar=over&amp;bufferlength=3&amp;displayclick=play&amp;fullscreen=true&amp;stretching=fill&amp;volume=100"
    />
<? endif; ?>
<? if($_GET['display'] == 'mp3' && isset($_GET['file'])) :?>
    <embed
        src="<?=$this_script?>?resource=player_mp3_mini.swf"
        width="200"
        height="20"
        allowscriptaccess="always"
        flashvars="mp3=<?=$_GET['file']?>&amp;bgcolor=ffffff&amp;loadingcolor=bb0000&amp;buttoncolor=bb0000&amp;slidercolor=999999&amp;autoplay=1"
    />
<? endif; ?>
</div>

</body>
</html>


<? endif; ?>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester





White paper
Tidsbegrænset kampagne: Overvejer du at udskifte eller tilføje printere i din forretning? Vi kan tilbyde én eller flere maskiner gratis