Tilretning af php-fil

3 views
Skip to first unread message

Kurt Hansen

unread,
Sep 9, 2020, 2:43:44 PM9/9/20
to
Dette script viser kun filerne i undermapperne - ikke dem der ligger i
roden. Hvilken linje skal jeg ændre til hvad?

<?php

class FolderHelper {

private $depth = 0;

public $result = array();

public function scan($dir = null) {

$scan = scandir($dir);

$result = array();

foreach ($scan as $key => $value) {
if (!in_array($value, array(".",".."))) {
if (is_dir($dir . DIRECTORY_SEPARATOR . $value)) {
$this->depth++;
//$result[$value] =
$this->scan($dir . DIRECTORY_SEPARATOR . $value);
$this->depth--;
} else {
$path_components = explode(DIRECTORY_SEPARATOR, $dir);
$parent_dir = array_pop($path_components);
$grafik='';
$temp = getimagesize($dir . DIRECTORY_SEPARATOR . $value);
if ($temp !== false) {
$grafik= $temp[3];
}

$this->result[] = array(
'grafik' => $grafik,
'size' => filesize($dir . DIRECTORY_SEPARATOR . $value),
'path' => $dir,
'parent_dir' => $parent_dir,
'file' => $value,
'depth' => $this->depth);
} } } } }

$scanner = new FolderHelper();
$scanner->scan('/Danacord/Hjemmeside/grafik');
$result = $scanner->result;

foreach($result as $item) {
if ($item['depth'] == 1) {
echo $item['parent_dir'] . '/' . $item['file'] . ' - size
'.$item['size'].' '.$item['grafik']."\n";
} }
?>

--
Venlig hilsen
Kurt Hansen

Jan Hansen

unread,
Sep 10, 2020, 1:53:12 AM9/10/20
to
Kurt Hansen skrev:

> Dette script viser kun filerne i undermapperne - ikke dem der ligger i
> roden. Hvilken linje skal jeg ændre til hvad?

Hvis det skal vise, hvad der ligger i roden, og 2 lag undermapper, så prøv dette:

<?php

$roden = '/Danacord/Hjemmeside/grafik'; # mappen det drejer sig om

$begynd=0; # øverste niveau, der skal vises ( 0 = $roden )

$slut=2; # stop 2 niveauer nede


class FolderHelper {
private $depth = 0;
public $result = array();

public function scan($dir = null) {
$scan = scandir($dir);
$result = array();

foreach ($scan as $key => $value) {
if (!in_array($value, array(".",".."))) {
if (is_dir($dir . DIRECTORY_SEPARATOR . $value)) {
$this->depth++;
$this->scan($dir . DIRECTORY_SEPARATOR . $value);
$this->depth--;
} else {
$grafik='';
if ($temp=getimagesize($dir . DIRECTORY_SEPARATOR . $value)) $grafik= $temp[3];

$this->result[] = array(
'grafik' => $grafik,
'size' => filesize($dir . DIRECTORY_SEPARATOR . $value),
'path' => $dir,
'file' => $value,
'depth' => $this->depth);
} } } } }

$scanner = new FolderHelper();
$scanner->scan($roden);
$result = $scanner->result;

array_multisort(array_column($result, 'depth'), SORT_NUMERIC,
array_column($result, 'path'), SORT_ASC,
array_column($result, 'file'), SORT_ASC,
$result);

foreach($result as $item) {
if ($item['depth'] >= $begynd && $item['depth'] <= $slut) {
echo $item['path'] . DIRECTORY_SEPARATOR . $item['file'] . ' - size
'.$item['size'].' '.$item['grafik']."<br>\n";
} }
?>


--
mvh Jan.
Help Microsoft stamp out piracy. Give
Linux to a friend today!

Martin Larsen

unread,
Sep 10, 2020, 1:58:07 AM9/10/20
to
On 09.09.2020 20.43, Kurt Hansen wrote:

> Dette script viser kun filerne i undermapperne - ikke dem der ligger i
> roden. Hvilken linje skal jeg ændre til hvad?

Du skal ændre denne linje:

> $scanner->scan('/Danacord/Hjemmeside/grafik');

Formentligt bare til $scanner->scan('/Danacord/Hjemmeside') idet jeg går
ud fra at Hjemmeside er din webrod.

Krabsen

unread,
Sep 10, 2020, 4:18:02 AM9/10/20
to
Den 09-09-2020 kl. 20:43 skrev Kurt Hansen:
> Dette script viser kun filerne i undermapperne - ikke dem der ligger i
> roden. Hvilken linje skal jeg ændre til hvad?
>

Hvis det primært er for selv at se filerne, kan du I stedet for at
pangle med det selv bruge et af de free tools der findes til formålet.



F.eks.

Evoluted Directory Listing Script
www.evoluted.net / in...@evoluted.net



Kurt Hansen

unread,
Sep 11, 2020, 1:16:34 AM9/11/20
to
Den 10/09/2020 kl. 07.53 skrev Jan Hansen:
> Kurt Hansen skrev:
>
>> Dette script viser kun filerne i undermapperne - ikke dem der ligger i
>> roden. Hvilken linje skal jeg ændre til hvad?
>
> Hvis det skal vise, hvad der ligger i roden, og 2 lag undermapper, så prøv dette:
>
> <?php
>
> $roden = '/Danacord/Hjemmeside/grafik'; # mappen det drejer sig om
[klip]
Samme resultat som før. Den viser ikke de filer der ligger i roden.
Reply all
Reply to author
Forward
0 new messages