Gå til innhold

hente filnavn til alle filer i en mappe


Anbefalte innlegg

Videoannonse
Annonse
PHP5 scandir()

9598579[/snapback]

 

outputten ble

 

Array ( [0] => . [1] => .. [2] => Grieg - I Dovregubbens Hall.gp5 [3] => Marilyn Manson - Sweet Dreams.gp5 [4] => Nirvana - Smells Like Teen Spirit.gp5 [5] => System Of A Down - Marmalade.gp5 [6] => The Offspring - The Kids Aren't Alright.gp5 [7] => index.php ) Array ( [0] => index.php [1] => The Offspring - The Kids Aren't Alright.gp5 [2] => System Of A Down - Marmalade.gp5 [3] => Nirvana - Smells Like Teen Spirit.gp5 [4] => Marilyn Manson - Sweet Dreams.gp5 [5] => Grieg - I Dovregubbens Hall.gp5 [6] => .. [7] => . )

 

Hvordan er det jeg får det i en liste?

slik som

 

<ol>
       <li><a href="grieg - I Dovregubbens Hall.gp5">Grieg - I Dovregubbens Hall</li>

<li>.... </li>
... </ol>

Endret av Stegz
Lenke til kommentar

<ol>

<?php

$sanger = scandir( $folder );

 

if( ( count( $sanger) -2 ) != 0 )

foreach( $sanger as $sang ) {

if( $sang != '.' && $sang != '..')

echo "<li><a href=\"$folder" . urlencode($sang) . '">' . substr( $sang, 0, strlen( $sang )-4 ) . "</a></li>\n";

}

else

echo 'Filer i mappen ' . $folder;

?>

</ol>

 

 

utestet

 

sann na gir den riktig link.

Endret av Ståle
Lenke til kommentar

Jeg fikk en en error. når jeg prøvde koden din.

 

Kan litt php og har prøvd meg litt og det funker veldig bra

 

 

<ul><?php
$dir    = 'sanger/';
$files = scandir($dir, 1);


for ($i = 1; $i < 6; $i++) { 

echo "
<li><a href=\"$files[$i]\">$files[$i]</a></li>";
}
?> 
</ul>

 

det eneste som er litt dumt er at jeg må skrive inn hvor mange filer som er i mappen. finnes det noen kommando som sier hvor mange filer som er i mappen?

Endret av Stegz
Lenke til kommentar

hvis jeg bare putter den rett inn i koden:

 

Warning: scandir() [function.scandir]: (errno 2): No such file or directory in D:\Program Files\Wamp\www\occadest\sanger.php on line 33

Warning: Invalid argument supplied for foreach() in D:\Program Files\Wamp\www\occadest\sanger.php on line 35

 

hvis jeg setter $folder = "sanger/" først

 

Fatal error: Call to undefined function url_encode() in D:\Program Files\Wamp\www\occadest\sanger.php on line 39

Lenke til kommentar
hvis jeg bare putter den rett inn i koden:

 

Warning: scandir() [function.scandir]: (errno 2): No such file or directory in D:\Program Files\Wamp\www\occadest\sanger.php on line 33

Warning: Invalid argument supplied for foreach() in D:\Program Files\Wamp\www\occadest\sanger.php on line 35

 

hvis jeg setter $folder = "sanger/" først

 

Fatal error: Call to undefined function url_encode() in D:\Program Files\Wamp\www\occadest\sanger.php on line 39

9598926[/snapback]

 

Jeg kan ikke nok php til å førstå alt som står på linje 39

Linje 39 : echo '<li><a href="' . url_encode($sang) . '">' . substr( $sang, strlen( $sang )-4 ) .'</a></li>';

Lenke til kommentar

Slik blir det nå:

 

<ol>
<li><a href="Grieg+-+Dovregubbens+Hall.gp5">.gp5</a></li><li><a href="Marilyn+Manson+-+Sweet+Dreams.gp5">.gp5</a></li><li><a href="Nirvana+-+Smells+Like+Teen+Spirit.gp5">.gp5</a></li><li><a href="System+Of+A+Down+-+Marmalade.gp5">.gp5</a></li><li><a href="The+Offspring+-+The+Kids+Aren%27t+Alright.gp5">.gp5</a></li></ol>

 

Navnene på filene er:

 

Grieg - Dovregubbens Hall.gp5

Marilyn Manson - Sweet Dreams.gp5

Nirvana - Smells Like Teen Spirit.gp5

System Of A Down - Marmalade.gp5

The Offspring - The Kids Aren't Alright.gp5

 

og alle disse filene ligger i en undermappe som heter sanger

 

Men finnes det en funksjon for å finne antall filer i mappen?

Endret av Stegz
Lenke til kommentar

count( $sanger );

hmm.. litt lol med

substr.. .. ..

 

argh!! sa dumt.. sec.. skal fikse det

 

na burde det vaert fikset. se hele koden-posten.

 

er ikke sikker pa om

$folder . urlencode.... er lov.. og har jernteppe pa hvordan man skal gjore det.

 

Ernie!! :D

 

hvis det var det som var problemet utenom at filnavnet ikke kom i linken.

Endret av Ståle
Lenke til kommentar

Jeg synes jeg har kommet ganske langt med egen kode :p

 

<ul><?php
$dir = 'sanger/';
$files = scandir($dir, 1);

for ($i = 0; $i < 5; $i++) {
echo "
<li><a href=\"sanger/$files[$i]\">$files[$i]</a></li>";
};

?> 
</ul>

 

Denne koden blir til

 

<ul>
<li><a href="sanger/The Offspring - The Kids Aren' tAlright.gp5">The Offspring - The Kids Aren' tAlright.gp5</a></li>
<li><a href="sanger/System Of A Down - Marmalade.gp5">System Of A Down - Marmalade.gp5</a></li>
<li><a href="sanger/Nirvana - Smells Like Teen Spirit.gp5">Nirvana - Smells Like Teen Spirit.gp5</a></li>
<li><a href="sanger/Marilyn Manson - Sweet Dreams.gp5">Marilyn Manson - Sweet Dreams.gp5</a></li>
<li><a href="sanger/Grieg - Dovregubbens Hall.gp5">Grieg - Dovregubbens Hall.gp5</a></li> 
</ul>

 

Det eneste som jeg ikke synes er så bra er at jeg selv må skrive inn antall filer som ligger i mappen.

 

jeg prøvde count ($dir) men det gav ikke noe svar.

Lenke til kommentar
du ma ha count( scandir( $dir ) ) -2

pga . og ..

 

 

men prov min kode igjen, na bor den vaere rett.

9599069[/snapback]

 

koden ser bra ut, men den gir ikke riktig link.

 

<ol><?php		
$dir = 'sanger/';
$files = scandir($dir, 1);
$antall = count ($files) -2;


for ($i = 0; $i < $antall; $i++) {
echo "
<li><a href=\"sanger/$files[$i]\">$files[$i]</a></li>";
};

?>

 

count ($files) gir to resultater mer enn det jeg ønsker: ".." og "."

Dette fjerner jeg ved å putte inn -2. Så nå funker den bra synes jeg

Lenke til kommentar
Du får fortsatt en tom <ol> hvis mappa er tom. Dårlig praksis IMHO.

9599144[/snapback]

 

 

<?php	

$dir = 'sanger/';
$files = scandir($dir, 1);
$antall = count ($files) -2;

if ($antall)  { 

echo "<ol>";
for ($i = 0; $i < $antall; $i++) {
echo "
<li><a href=\"sanger/$files[$i]\">$files[$i]</a></li>";
}
echo "</ol>";

};


?>

 

Hvis antallet er 0 vil jeg ikke få en tom liste lenger.

er løsningen god nå?

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å
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...