Avatar billede dragonbook Nybegynder
14. april 2007 - 14:39 Der er 9 kommentarer og
1 løsning

Readdir script

Jeg har fundet dette script på http://php.net/readdir

<?php
  /*
    edit $path to the directory you want to use
    edit $file_types to change the file types to show
  */
  function file_type($file){
      $path_chunks = explode("/", $file);
      $thefile = $path_chunks[count($path_chunks) - 1];
      $dotpos = strrpos($thefile, ".");
      return strtolower(substr($thefile, $dotpos + 1));
  }
  $file_count = 0;
  $path = "files/";
  $file_types = array('jpeg', 'jpg', 'ico', 'png', 'gif', 'bmp');
  $p = opendir($path);
      while (false !== ($filename = readdir($p))) {
          $files[] = $filename;
      }
  sort($files);
      foreach ($files as $file) {
          $extension = file_type($file);
          if($file != '.' && $file != '..' && array_search($extension, $file_types) !== false){
              $file_count++;
              echo '<a href="'.$path.$file.'">'.$file.'</a> <br/>';
          }
      }
    if($file_count == 0){
        echo "<b>No file match your file types</b>";
    }
?>

Den virker udemærket, men hvordan skriver man den om så den ikke udskriver endelsen til filnavnet. Dvs. istedet for at skrive:

<a href="filer/fil.jpg">fil.jpg</a>

Skal den skrive:

<a href="filer/fil.jpg">fil</a>
Avatar billede johan.o Nybegynder
14. april 2007 - 14:59 #1
Måske sådan her ..

echo '<a href="'.$path.$file.'">'.substr($file, 0, -4).'</a> <br/>';

Mvh. Johan
Avatar billede johan.o Nybegynder
14. april 2007 - 15:06 #2
...og måske endda endnu bedre..

echo '<a href="'.$path.$file.'">'.substr($file, 0, strrpos($file, ".")).'</a> <br/>';

Mvh. Johan
Avatar billede dragonbook Nybegynder
14. april 2007 - 15:15 #3
Det virker bare perfekt! Tak...

Lige en ting mere som du måske kan hjælpe mig med...

Scriptet ovenfor udskriver nu linkene således i kildekoden:

<a href="filer/fil1.jpg">fil1</a><a href="filer/fil2.jpg">fil2</a><a href="filer/fil3.jpg">fil3</a><a href="filer/fil4.jpg">fil4</a><a href="filer/fil5.jpg">fil5</a>

Hvordan får jeg det til at se således ud:


<a href="filer/fil1.jpg">fil1</a>
<a href="filer/fil2.jpg">fil2</a>
<a href="filer/fil3.jpg">fil3</a>
<a href="filer/fil4.jpg">fil4</a>
<a href="filer/fil5.jpg">fil5</a>

Det er noget med at indsætte /n et eller andet sted, men hvor?
Avatar billede thesurfer Nybegynder
14. april 2007 - 15:19 #4
echo '<a href="'.$path.$file.'">'.substr($file, 0, strrpos($file, ".")).'</a> <br/>\n';

Hvis \n alene ikke virker, prøve med \r\n
Avatar billede johan.o Nybegynder
14. april 2007 - 15:40 #5
Kunne ikke være mere enig :)

Jeg smider et svar for den første del :), godt det virker.

Mvh. Johan
Avatar billede dragonbook Nybegynder
14. april 2007 - 16:06 #6
Har lige prøvet at skrive:
echo '<a href="'.$path.$file.'">'.substr($file, 0, strrpos($file, ".")).'</a> <br/>\n';

Dette bevirker bare at \n bliver skrevet som almindelig tekst i både kildekoden og websiden dvs.

<a href="filer/fil1.jpg">fil1</a><br/>\n<a href="filer/fil2.jpg">fil2</a><br/>\n<a href="filer/fil3.jpg">fil3</a><br/>\n<a href="filer/fil4.jpg">fil4</a><br/>\n<a href="filer/fil5.jpg">fil5</a><br/>\n
Avatar billede johan.o Nybegynder
14. april 2007 - 16:20 #7
Ja, det er vist noget med ' og "

echo "<a href='".$path.$file."'>".substr($file, 0, strrpos($file, "."))."</a> <br/>\n";

...måske..:)

Mvh. Johan
Avatar billede dragonbook Nybegynder
14. april 2007 - 16:39 #8
Så virkede det, endnu engang tak :-)
Avatar billede johan.o Nybegynder
14. april 2007 - 18:02 #9
Velbekomen og tak for points.

Mvh. Johan
Avatar billede thesurfer Nybegynder
15. april 2007 - 14:32 #10
Så lærte jeg også noget om PHP.. :-)
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