Dir uitlezen en linken

Door Ano Niem, 25 jaar geleden, 17.340x bekeken

Hey,
Met dit script lees je een directory uit en elk bestand met de juiste extensie krijgt een link,
Ik ben op het idee gebracht door zo'n pagina script,
maar bij zo'n pagina script moet je elke link handmatig neerzetten,
Je maakt een directory op je server die je bijv: 'bestanden' noemt en daar zet je alle bestanden neer die in je menutje moeten staan.

zet dit script op de plaats waar jij je menu wilt hebben

Voorbeeld: http://

Gesponsorde koppelingen

PHP script bestanden

  1. dir-uitlezen-en-linken

 

Er zijn 29 reacties op 'Dir uitlezen en linken'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Bram Z
Bram Z
25 jaar geleden
 
0 +1 -0 -1
NIet alle servers onerstuenen zo scripts mar toch heel gemakkelijk !!!
Sebas
sebas
25 jaar geleden
 
0 +1 -0 -1
jammer dat dat zo is maar wel mooi script! ik zocht dit net voor foto's!


25 jaar geleden
 
0 +1 -0 -1
heb het script gebruikt, en het werkt erg goed.
Maar kan er iets bij worden gemaakt dat als er niets in de map staat, dat er dan dat gemeld wordt.

Heb al zitten klooien hiermee...maar kom er niet uit.

heb nu dit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php

$dir
= "./images/paintings/"; // de directory die hij uit moet lezen
$exten = 'jpg'; // de extensie die hij weer moet geven
if ($handle = opendir($dir))
{

    while (false !== ($file = readdir($handle))) {
        $bestand = $dir ."/". $file ;
        $ext = pathinfo($bestand);
        if($ext['extension'] == $exten)
        {

            echo " <a href=' $dir".$file."' target='_self'><img src=' $dir".$file."' width='100' height='75' STYLE='border: solid 1px black;'></a>" ;
        }
    }

    if (empty($handle))
    {

    
        echo "Er zijn geen afbeeldingen beschikbaar";
        
    }

    closedir($handle);
}

?>


wie kan me helpen??


25 jaar geleden
 
0 +1 -0 -1
Beste, ik gebruik dit script om een fotoalbum te genereren. werkt prima. alleen heb ik nu een mysql tabel aangemaakt met albumnaam en dir in, zodat ie automatisch een menutje maakt met de albums erin. alleen bij het toeveogen van de albums zit ik met een probleem. stel de gebruikers upload foto's naar een map bvb fotos/24-08-04. en moet dan in het admin gedeelte de map 24-08-04 selecteren waar de foto's zich bevinden. Is het mogelijk om een map (in dit geval fotos) uit te lezen en alleen de submappen in een menutje te zetten
in de vorm van <option value=""> op die manier, zodat t gemakkelijker is de mappen de selecteren,

alvast bedankt

Yves


24 jaar geleden
 
0 +1 -0 -1
Ik heb dit laatste script gebruikt maar ik zie dat hij de afbeeldingen wel zoet maar geeft ze niet weer!!!!


24 jaar geleden
 
0 +1 -0 -1
Is het ook mogelijk om alles op alfabetische volgorde te zetten?
Ik gebruik het namelijk voor mijn muziekbestanden, en het is vervelend als alles door elkaar staat.


24 jaar geleden
 
0 +1 -0 -1
the friggler:
probeer eens if (!empty($handle))

dan moet ie wel werken als het goed is
Vdleije .
vdleije .
24 jaar geleden
 
0 +1 -0 -1
Hoe kan je meerdere extencies (in het orginele script) toevoegen. Gewoon voorzien van een ',' ??? of ';'???


24 jaar geleden
 
0 +1 -0 -1
oeh... heerlijk scriptje!!!

nu nog in gebruik voor gif files, maar straks misschien menu ermee opbouwen!


24 jaar geleden
 
0 +1 -0 -1
oeh... heerlijk scriptje!!!

nu nog in gebruik voor gif files, maar straks misschien menu ermee opbouwen!


24 jaar geleden
 
0 +1 -0 -1
oeh... heerlijk scriptje!!!

nu nog in gebruik voor gif files, maar straks misschien menu ermee opbouwen!
El Bekko
El Bekko
24 jaar geleden
 
0 +1 -0 -1
Ik krijg deze error:

Warning: opendir(./home/fatburge/public_html/icstrategy/Tools/) [function.opendir]: failed to open dir: No such file or directory in /home/fatburge/public_html/icstrategy/Tools/Tools.php on line 12

Ligt dit aan het script of aan die zogezegde file die mist? Zeer raar.
Jelmer -
Jelmer -
24 jaar geleden
 
0 +1 -0 -1
De directory Tools (let ook op hoofdletters als je niet in windows draait) kan niet gevonden worden.
Ano Niem
Ano Niem
24 jaar geleden
 
0 +1 -0 -1
Gezien de directory namen draait hij onder linux.

Ik zal het script ff aanpassen dat de errors er wat socialer uitkomen ;)

Edit: Fouten worden nu niet meer keihard naar voren gegooit. Ik heb alleen op het moment geen zin om gehele foutafhandeling te maken ;) tis nog maandag ochtend
El Bekko
El Bekko
24 jaar geleden
 
0 +1 -0 -1
Heheh, bedankt. Ik heb de error weggekregen (mijn path veranderd naar ../tools/). Ik had nog 1 vraagje: kan hij ook meerdere extensies laten zien of kan ik gewoon zeggen laat die extensies niet zien...?

EDIT: hier gebeuren rare dinge... ik dacht van: ik zal is proberen die $exten te veranderen in $n_exten (had ik in een ander script gezien), en nu geeft hij twee streepjes (een img =/) die linken naar de homepage en de fodler die ik wil uitlezen. Raar raar raar...
Jelmer -
Jelmer -
24 jaar geleden
 
0 +1 -0 -1
if($ext['extension'] == $exten)

Vervangen met:
if(in_array($ext['extension'], $exten))

en vervang: $exten = 'html';
met: $exten = array('html', 'jpg', 'gif', 'png');
enzovoord.
El Bekko
El Bekko
24 jaar geleden
 
0 +1 -0 -1
Ok, bedankt allemaal. Ik heb het in orde gekregen :D Ik heb de <img> tag meoten weghalen omdat ik het eigenlijk vooral voor files gebruik :p

Bedank voor de hulp allemaal :D

Oh ja, nog een laatste ding: Hoe kan ik het script underscores en de extensie laten weghalen bij de echo?
El Bekko
El Bekko
24 jaar geleden
 
0 +1 -0 -1
Voor die laatste vraag heb ik ook een oplossing dankzij iemand met de nickname Smartys :D

Dit is het script zoals het er nu uitziet:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php

$dir
= "../tools/"; // The directory to display
$exten = array('exe', 'jar', 'gif', 'png', 'jpg', 'zip', 'rar'); // The extensions to display
if ($handle = opendir($dir))
{

    while (false !== ($file = readdir($handle))) {
        $bestand = $dir ."/". $file ;
        $ext = pathinfo($bestand);
        if(in_array($ext['extension'], $exten))
        {

        for($i=1; $i<=$count-2; $i++)
            $suffix .= '.' . $temp[$i]; // add the rest if there is any
                 echo " &bull; <a href=' $dir".$file."' target='_self'> ".substr($file, 0, strlen($file) - (strlen($file) - strrpos($file, ".")))." </a> <p></p> " ;
        }
    }

    if (empty($handle))
    {

    
        echo "No files available, please contact the administrator on <a href='mailto:[email]'>[email]</a>";
        
    }

    closedir($handle);
}

?>


----
Het kan wel zijn dat er nog een regeltje of twee code teveel inzit van alle probeersels, maar het werkt. Alleen dat underscore-probleem heb ik nog niet weggewerkt.
Kristof
Kristof
23 jaar geleden
 
0 +1 -0 -1
In plaats van files, wil ik dat de directories in een lijst worden geplaatst. Ik heb nu dit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?
$dir
= "/home/user/blablabla/www/blablabla/pics"; // de directory die hij uit moet lezen
$exten = array('dir'); //de extensie die hij weer moet geven
if ($handle = @opendir($dir))
{

    while (false !== ($file = @readdir($handle))) {
        $bestand = $dir ."/". $file ;
        $ext = pathinfo($bestand);
        if($ext['extension'] == $exten)
        {

            echo " •  <a href='/module/". $file ."' target='_blank'>". basename($file, ".php") ."</a><br>" ;
        }
    }
    @
closedir($handle);
}

?>





maar hij geeft dan niets weer in de lijst.
Kan iemand me helpen?
Tanx
Kristof
Kristof
23 jaar geleden
 
0 +1 -0 -1
heb het gevonden:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?
$dir
= "/home/user/blablabla/www/blablabla/pics"; // de directory die hij uit moet lezen
$n_ext = array('exe', 'php'); //de extensie die hij weer moet geven
if ($handle = @opendir($dir))
{

    while (false !== ($file = @readdir($handle))) {
         if (($file !== ".") and ($file !== "..")) {
        $bestand = $dir ."/". $file ;
        $ext = pathinfo($bestand);
        if($ext['extension'] == $exten)
        {

            echo " •  <a href='/module/". $file ."' target='_blank'>". basename($file, ".php") ."</a><br>" ;
        }
    }}
    @
closedir($handle);
}

?>
Jonathan Dequeker
Jonathan Dequeker
22 jaar geleden
 
0 +1 -0 -1
moet $file niet $bestand worden bij de uitvoer?
Hans
Hans
22 jaar geleden
 
0 +1 -0 -1
Is het mogelijk om de files te sorteren?
Ik denk misschien dat je het in een array moet plaatsen en dan iets met "SORT_DESC". Maar ik ken nog niet veel van PHP en weet dus niet goed hoe ik het moet invoegen in het script. Kan iemand mij helpen?
Stef Segers
Stef Segers
20 jaar geleden
 
0 +1 -0 -1
ik werk met php4 en krijg deze error

Notice: Undefined index: extension in
cxxxxx: line 45

Dat is:
if($ext['extension'] == $exten)
Gerald
Gerald
20 jaar geleden
 
0 +1 -0 -1
Ik het script als volgt aangepast:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?
$dir
= "/var/www/vhosts/*************/";                         // de directory die hij uit moet lezen
$exten = 'txt';                                                                     // de extensie die hij weer moet geven
if ($handle = @opendir($dir))
{

    while (false !== ($file = @readdir($handle))) {
        $bestand = $dir ."/". $file ;
        $ext = pathinfo($bestand);
        if($ext['extension'] == $exten)
        {

            echo " $file <br> ";
        

        
        }
    }
    @
closedir($handle);
}

?>


Ik heb een site waar ik de bovenstaande code via een txt bestand aanroep.
Alles wordt netjes weergegeven, de dir wordt netjes uitgelezen.

Alleen hoe kan ik zorgen dat de txt files die hij dus in de lijst zet geopend kunnen worden in het zelfde sub venster van de tabel?
PHP Newbie
PHP Newbie
20 jaar geleden
 
0 +1 -0 -1
Kijk even hier naar: http://phphulp.nl/php/scripts/4/1222/

En dan pas je regel 116 aan naar:

$sReturn .= '<li><a href="'.$this->Sdir.'/'.$file['filename'].'">'.$file['filename'].'</a></li>';
Henk
Henk
20 jaar geleden
 
0 +1 -0 -1
Precies wat ik nodig had. Maar zoals al eerder gevraagt was. Hoe zet je de files op volgorde. en dan het liefst de laatst toegevoegde file in dir. bovenaan.
Mijn files zijn genoemd naar file(datum en tijd) dus zou het in (omgekeerde) alfabetische volgorde kunnen. Wil dit ?
Pieter van Linschoten
Pieter van Linschoten
20 jaar geleden
 
0 +1 -0 -1
In plaats van echo de data in een array zetten, en dan array_flip geloof ik..

Edit:

Deze moet je hebben
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
array_reverse();
?>


Hierdoor verwissel je de volgorde :)
Meddiecap B
Meddiecap B
20 jaar geleden
 
0 +1 -0 -1
Hoe kan ik ervoor zorgen dat de folder waar nu in zit de bestanden kan uitlezen? Dus de bestanden die in dezelfde folder zitten.

Edit: Laat maar, ik heb het al...
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Bas
Bas
19 jaar geleden
 
0 +1 -0 -1
hoe kan je het totale aantal bestande in en map zien??

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. dir-uitlezen-en-linken

Labels

  • Geen tags toegevoegd.

Navigatie

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.