Döp om alla filer i en mapp till "giltiga" namn

PHPportalen Forum Index » Tips och Trix
Lägg ett bokmärke på hela tråden
Skapa nytt inlägg   Svara på inlägget
Visa föregående ämne :: Visa nästa ämne  
Startad av: Meddelande
davidrunemalm



Medlem i: 5695 dagar
Från: Nybro
Status: Offline



#271850
Inlägg Skrivet: 2005-02-28 20:50      Ämne: Döp om alla filer i en mapp till "giltiga" namn Citera

Här kommer ett script för att döpa om alla filer i vald mapp till "giltiga" filnamn. Vad som är giltiga filnamn definierar du själv i scriptet. Det går ut på att bokstäver byts ut t.ex. "å" och "ä" byts till "a". Slängde ihop det lite snabbt men kom gärna med kritik..

KOD:
1:
<?php
2:
// +--------------------------------------------+
3:
// | Döp om filer i en mapp till "giltiga" namn |
4:
// +--------------------------------------------+
5:
// | Av David Runemalm 2005                     |
6:
// +--------------------------------------------+
7:
 
8:
function modifyName($file) {
9:
   $filename = $file;
10:
 
11:
   //Ändra $pattern och $replace nedan till de teckenbyten du vill göra
12:
   $pattern = array ('/\s/', '/å/', '/ä/' ,'/ö/' ,'/Å/' ,'/Ä/' ,'/Ö/', '/JPG/');
13:
    $replace = array ('/\s/' => '_', '/å/' => 'a', '/ä/' => 'a', '/ö/' => 'o',
14:
                '/Å/' => 'A', '/Ä/' => 'A', '/Ö/' => 'O', '/JPG/' => 'jpg');
15:
 
16:
   foreach($pattern as $value) {
17:
      $filename = preg_replace($value, $replace[$value], $filename);
18:
   }
19:
   return $filename;
20:
}
21:
 
22:
//Sökväg till mapp - OBS! Byt till rätt mapp
23:
$dir = "path/to/dir";
24:
 
25:
//Döp om filerna
26:
if ($handle = opendir($dir)) {
27:
   while (false !== ($file = readdir($handle))) {
28:
      if ($file != "." && $file != "..") {
29:
         $old_name = $dir. "/" . $file;
30:
         $new_name = $dir. "/" . modifyName($file);
31:
         if (rename($old_name, $new_name)) {
32:
            echo "$new_name<BR>";
33:
         } else { //Ifall filen inte byter namn
34:
            echo "--------------------ERROR-------------------- Filen $old_name bytte inte namn<BR>";
35:
         }
36:
      
37:
      }
38:
   }
39:
}
40:
 
41:
//Stäng mappen
42:
closedir($handle);
43:
?>
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande MSN Messenger
madwax



Medlem i: 5591 dagar

Status: Offline



#363430
Inlägg Skrivet: 2006-03-24 18:33      Ämne: Refactor Citera

Man kan skriva om den övre funktionen enligt:

KOD:
1:
 
2:
    function modifyName( $string  )
3:
    {
4:
        $replace = array( ' ' => '_',
5:
                          'å' => 'a',
6:
                          'ä' => 'ae',
7:
                          'ö' => 'oe',
8:
                          'Å' => 'A',
9:
                          'Ä' => 'Ae',
10:
                          'Ö' => 'O' );
11:
 
12:
        return str_replace( array_keys( $replace ) , array_values( $replace ) , $string );
13:
 
14:
    }
15:
 


inget omvälvande men lite mer lättförståeligt och snabbare att exekvera.

Med vänlig hälsning,
//jan
ZCE
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
joback



Medlem i: 4801 dagar

Status: Offline



#365857
Inlägg Skrivet: 2006-04-01 13:24      Ämne: Citera

Om jag vill få en txtfil omvandlad till url-länkar hur skall jag göra då?
går det att göra på något liknande sätt?

/Jonas
 

_________________
Jonas Backman
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Davvus



Medlem i: 4739 dagar

Status: Offline



#365940
Inlägg Skrivet: 2006-04-01 15:26      Ämne: Citera

skriver i en tråd som publicerades för 1 år sedan. fortsätt så.
 

_________________
Bedriv enskild firma | Bitcoin information och valutakurs
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
davidrunemalm



Medlem i: 5695 dagar
Från: Nybro
Status: Offline



#737161
Inlägg Skrivet: 2014-06-02 23:38      Ämne: Citera

Ja det är väl inga problem att skriva i en ett år gammal tråd. Jag tänkte svara såhär lite drygt nio år senare.

Först vill jag bara se om frågeställaren har lyckats lösa problemet redan eller om jag behöver svara?

Tack för tipset förresten Jan Wink
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande MSN Messenger
Visa tidigare inlägg:   
Skapa nytt inlägg   Svara på inlägget
PHPportalen Forum Index » Tips och Trix
Hoppa till:  
Du kan inte skapa nya inlägg i det här forumet
Du kan inte svara på inlägg i det här forumet
Du kan inte ändra dina inlägg i det här forumet
Du kan inte ta bort dina inlägg i det här forumet
Du kan inte rösta i det här forumet
Du kan inte bifoga filer i detta forum
Du kan inte ladda ner filer från detta forum
Kontakta oss på adressen: info@phpportalen.net
Webbplatsen bygger i grunden på phpBB © 2001, 2002 phpBB Group

Modifieringar har senare gjorts i systemet av PHPportalen
Sid och logotypdesign skapad av Daren Jularic