Avatar billede ahrensberg Nybegynder
16. juli 2003 - 10:37 Der er 10 kommentarer og
2 løsninger

Hva' skal jeg skrive i denne "unlink"?

Jeg har en linie som ser sådanne ud:

unlink("%"."2.jpg");

Jeg vil have den til at slette alle filer man i Windows ville definere som " *2.jpg ", altså alle der slutter med 2.jpg, men hvordan definere jeg at det der står foran er ligemeget?
Avatar billede razor Nybegynder
16. juli 2003 - 10:44 #1
Det kan du ikke på denne måde. Du skal tænke mere lowlevel. Løb alle filer i biblioteket igennem og check vha. diverse strengfunktioner om de lever op til dine krav for unlink().
Avatar billede raz0 Nybegynder
16. juli 2003 - 10:48 #2
Så er det slet ikke så simpelt som dit eksempel.
Det her skulle kunne gøre det. Koden er som altid ikke testet :)

-------------------------
$folder= "./mappe/";

$dp = opendir($folder);
while(false !== ($entry = readdir($dp)))
{
    $extension = strtolower(substr(strrchr($entry, "."),1));
    if (is_file($folder.$entry) && $entry != "." && $entry != "..")
    {
        if ($extension == "jpg")
            unlink($folder.$entry);
    }
}
Avatar billede raz0 Nybegynder
16. juli 2003 - 10:52 #3
Ups, læste ikke dit spørgsmål ordenligt.

-----------------------------
$folder= "./mappe/";

$dp = opendir($folder);
while(false !== ($entry = readdir($dp)))
{
    if (is_file($folder.$entry) && $entry != "." && $entry != "..")
    {
        if (preg_match("/^.*2\.jpg$/", $entry)
            unlink($folder.$entry);
    }
}

-----------------------------
Det her skulle slette *2.jpg
Avatar billede erikjacobsen Ekspert
16. juli 2003 - 10:57 #4
Ikke videre portabelt, og måske er det ikke muligt på din server, men fx under
Linux/Unix

  system('rm *2.jpg');
Avatar billede raz0 Nybegynder
16. juli 2003 - 11:03 #5
Hvis man bruger system() skal safe_mode være slået fra, og det er det stort set aldrig. Hvis du kører PHP på din egen server kunne du selvfølgelig godt. Under Windows ville det tilsvarende være system("del *2.jpg");
Avatar billede raz0 Nybegynder
16. juli 2003 - 11:07 #6
Hvis du har PHP 4.3.0 eller derover kan du bruge følgende:

foreach (glob("*2.jpg") as $file)
    unlink("./$file");
Avatar billede ahrensberg Nybegynder
16. juli 2003 - 11:10 #7
Fandt ud af det på en anden måde. Hentede det resterende info omkring filnavnet i min MySQL db, men Raz0, hvis du smider et svar, så fordeler jeg pointene mellem jer, for i fortalte mig jo sådan set begge to, at det ikke kunne lade sig gøre på min "nemme" måde! ;)
Avatar billede raz0 Nybegynder
16. juli 2003 - 11:19 #8
Den sidste jeg skrev er faktisk meget nem. Man skal så bare have PHP 4.3.0 eller nyere :/
Avatar billede ahrensberg Nybegynder
16. juli 2003 - 11:23 #9
Det har jeg, men serveren hvorpå siden skal køres kender jeg ikke noget til, så derfor bruger den anden måde, men ellers tak!
Avatar billede raz0 Nybegynder
16. juli 2003 - 11:26 #10
Okay, fint med mig. Hvis du vil vide lidt mere om den server du kører fra, kan du altid lave et nyt PHP script med linjen <?php phpinfo(); ?>
Avatar billede ahrensberg Nybegynder
16. juli 2003 - 11:35 #11
Jep, det ved jeg godt. Men det er en kammerat jeg laver siden for, så jeg har slet ikke kontakt til serveren! ;)
Avatar billede raz0 Nybegynder
16. juli 2003 - 11:41 #12
Okay, never mind så ;)
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