Avatar billede el_morten Nybegynder
09. april 2006 - 18:47 Der er 8 kommentarer og
1 løsning

Fravælge fil med specifikt filnavn

Hej. Lige et lille hurtigt spørgsmål. Hvordan får jeg følgende kode til at fravælge de billeder der hedder thumb_ (f.eks. thumb_billede1.jpg og thumb_billede1_over.jpg) samt .pdf filer?

$images = glob("../projects/".$case."/{*.jpg,*.JPG,*.jpeg,*.JPEG,*.jpe,*.JPE,*.png,*.PNG,*.gif,*.GIF}", GLOB_BRACE);
Avatar billede coderdk Praktikant
09. april 2006 - 19:12 #1
Prøv med:

function getIt($var)
{
  return preg_match( "#.*/(?!thumb_)(.*?)\.(jpg|jpeg|jpe|png|gif)$#i", $var );
}
$images = glob("../projects/".$case."/*");
$images = array_filter( $images, "getIt" );
Avatar billede el_morten Nybegynder
11. juni 2006 - 00:19 #2
Hej coderdk.
Der kom lige noget i vejen så jeg har først haft mulighed for at afprøve dette nu. Men det virker ikke, jeg får en fejl: Warning: array_filter(): The first argument should be an array in c:\appserv\www\xxx\web2\lise4.php on line 113
og det er rigtigt, da images først bliver lavet i linien jeg skrev i indledningen og dermed ikke et array.. !?

Men jeg lukker dette spørgsmål, og opretter et nyt, da jeg skal bruge et svar rimelig hurtigt. Så hvis du lige svarer så du kan få points som tak for hjælpen :)
Avatar billede coderdk Praktikant
11. juni 2006 - 00:35 #3
glob returnerer et array - så det burde da virke?

Men det kan være jeg misforstår dig... :)
Avatar billede el_morten Nybegynder
11. juni 2006 - 00:50 #4
Nåh.. troede at det kun var mig der sad klokken halv et en lørdag nat og kodede php :p

min kode er:
(en laaang if-sætning)
else{
                    $images = glob("projects/".$case."/{*.jpg,*.JPG,*.jpeg,*.JPEG,*.jpe,*.JPE,*.png,*.PNG,*.gif,*.GIF}", GLOB_BRACE);
                    echo "<img src='".$images[0]."' id='bigpicture'> ";
            }
            foreach ($images as $fil){
                echo '<a href="' . $fil . '"><img src="ikon.jpg" alt="ikon" class="picture"></a> ';
            }

Det er faktisk i det sidste stykke kode altså foreach der skal sorteres fra..
Avatar billede coderdk Praktikant
11. juni 2006 - 01:07 #5
Sådan?

foreach ( $images as $fil )
{
  if ( substr( basename( $fil ), 0, 6 ) != 'thumb_' )
  {
      echo '<a href="' . $fil . '"><img src="ikon.jpg" alt="ikon" class="picture"></a> ';
  }
}
Avatar billede el_morten Nybegynder
11. juni 2006 - 01:10 #6
Yeees!
perfekt!
Hvis det så er uden pdf'er er det så
if ( substr( basename( $fil ), 0, 6 ) != 'thumb_, *.pdf' ) ?
Avatar billede el_morten Nybegynder
11. juni 2006 - 01:11 #7
Nej.. Det er det så ikke ka jeg se. :p
Avatar billede coderdk Praktikant
11. juni 2006 - 03:00 #8
foreach ( $images as $fil )
{
  if ( substr( basename( $fil ), 0, 6 ) != 'thumb_' && substr( basename( $fil ), -4 ) != '.pdf' )
  {
      echo '<a href="' . $fil . '"><img src="ikon.jpg" alt="ikon" class="picture"></a> ';
  }
}
Avatar billede el_morten Nybegynder
11. juni 2006 - 11:11 #9
Perfekt! tak for det coderdk :)
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