Gå til innhold

Liste bestemte filtyper i en mappe ved hjelp av php


Anbefalte innlegg

Jeg har brukt følgende kode for å få php til å liste opp alle filene som ligger i en mappe:

<?php
$count = 0;
if ($handle = opendir('.')) {
while (false !== ($file = readdir($handle))) {
	if ($file != "." && $file != "..") {$count++;
		print("<a href=\"".$file."\">".$file."</a><br />\n");

	}
}
echo '<br /><br /><a href="..?id=3">Return</a>';
closedir($handle);
}
?>

Problemet er at jeg ikke ønsker å liste alle filtypene som ligger i mappen. Er det noe som kan hjelpe meg slik at det feks kun er .doc, .jpg, .xls og .pdf filer som vises?

 

Tusen takk for all hjelp :)

Lenke til kommentar
Videoannonse
Annonse
Er det noe jeg gjør feil?

Hvordan skal vi vite om du gjør noe feil, når vi ikke aner hva i all verden du gjør? Post koden du foreløpig har og GI OSS LITT INFORMASJON. Det skal samtidig sies at alt Peter's kode gjør er å sjekke filendelser. Dersom du limte den inn alene i et dokument vil du ikke få mye resultat.

Endret av Jonas
Lenke til kommentar

Beklager hvis jeg har gitt litt lite informasjon. Det jeg prøver på er å lage en kode som viser innholdet i en mappe, men som bare printer ut bestemte filtyper. Den koden jeg postet i min første post printer ut alle filtypene som ligger i mappen.

Hvilke forandringer kan jeg feks gjøre i den koden jeg postet for å få det til å kun vise bestemte filtyper, og ikke alt som ligger i mappen?

Lenke til kommentar

Prøv denna koden

 

 

 

$accepted_ext = array('pdf', 'xsl', 'doc');

$mappe = "./";

if(is_dir($mappe)) {

if($dh==opendir($mappe)) {

while(($fil=readdir($dh))!==false) {

$pos = strrpos($fil, '.');

if(false !== $pos && $pos < strlen($fil)-1) {

$ext = substr($fil, $pos+1);

if(in_array($accepted_ext, $ext)) {

echo $fil;

};

};

};

};

};

 

 

 

Kan vel ganske så lite PHP, så kan vel si ganske sikkert att det er feil ved den.. :)

Lenke til kommentar

Så glob ble nevnt her, og det er nok beste mulighet..:

$mappe_med_filer = '/var/www/filer';
$filtyper = array('txt', 'pdf', 'doc');
$filer = array();
for ($i = 0; $i < count($filtyper); $i++)
{
  array_merge($filer, glob($mappe_med_filer.'/*.'.$filtyper[$i]);
}

$filer inneholder da til slutt alle filer som passer med dine filtyper i mappen $mappe_med_filer =)

Lenke til kommentar
visste ikke at glob støttet "arrays" med filtyper :S Jaja, stilig.. Da er nok din løsning best =)

 

Det visste ikke jeg heller.

 

array glob ( string $pattern [, int $flags ] )

Er det bare jeg som ikke klarer å se noen som har brukt array i glob her? (Forbehold om at itsmebth har redigert posten sin)

Lenke til kommentar
visste ikke at glob støttet "arrays" med filtyper :S Jaja, stilig.. Da er nok din løsning best =)

 

Det visste ikke jeg heller.

 

array glob ( string $pattern [, int $flags ] )

Er det bare jeg som ikke klarer å se noen som har brukt array i glob her? (Forbehold om at itsmebth har redigert posten sin)

Det var jeg som svarte uten å teste om det faktisk virket (som det ikke gjør). Jeg må ha blandet det sammen formatet som brukes for å angi filtyper i Windows Common Dialog (åpne, lagre, etc...)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...