String zu legitimen Verzeichnisnamen für mkdir()

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • String zu legitimen Verzeichnisnamen für mkdir()

    Hi leute!
    Ich hab folgendes Problem und hoffe irgendjmd hat nen guten Tipp für mich..:

    Aus einem string soll ein legitimer Linux-Verzeichnisname erstellt werden. Der String kann alle erdenklichen Sonderzeichen besitzen...
    Leider finde ich nirgendwo im Web eine "Anpassungsfunktion", darum hab ich mal so angefangen:
    PHP Code:
    function corrfoldername($thefolda) {
      
    // Array mit zu ersetzenden Strings:
      
    $fldrpl = array(
        
    'ä' => 'ae',
        
    'é' => 'e',
        
    'è' => 'e',
        
    'é' => 'e',
        
    '"' => '',
        
    '&' => '',
        
    ',' => '',
        
    '' => '',
        
    'ö' => 'oe',
        
    'ü' => 'ue',
        
    'ß' => 'ss',
        
    ' ' => '_',
        
    '\\' => '-',
        
    '/' => '-'
      
    );
      
    $thefolda strtr(strtolower($thefolda),$fldrpl);
      return 
    $thefolda;

    Bis ich da alle möglichen Zeichen zusammen hab' werd ich allerdings grau und so hoffe ich daß mir jmd nen Schubs in die richtige Richtung geben kann!

    Vielen Dank schon mal vorab...
    3örny
    WHILE (!$asleep) { $sheep++; }

  • #2
    Originally posted by nichtsooft View Post
    Bis ich da alle möglichen Zeichen zusammen hab' werd ich allerdings grau und so hoffe ich daß mir jmd nen Schubs in die richtige Richtung geben kann!
    Arbeite mit einer White- statt mit einer Blacklist.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Comment


    • #3
      Originally posted by wahsaga View Post
      Arbeite mit einer White- statt mit einer Blacklist.
      Danke für die schnelle Antwort wahsaga!
      An ne Whitelist hatte ich auch schon gedacht, jedoch um die nicht enthaltenen Zeichen zu ersetzen müsste ich allerdings den selben Aufwand betreiben!? ^^
      WHILE (!$asleep) { $sheep++; }

      Comment


      • #4
        Nur wenn du die Zeichen wirklich in was spezielles anderes umwandeln willst... (so wie ö => oe). Wenn du einfach nicht erlaubte Zeichen immer in "-" umwandelst ist das sehr viel einfacher weil du einfach ein Regex drüberlaufen lässt er alles, was nicht erlaubt ist, ersetzt.
        This is what happens when an unstoppable force meets an immovable object.

        Comment


        • #5
          @ApoY2k:

          Das ist mir bewusst, allerdings sollten - und das hätte ich dringend hinzufügen sollen - die Verzeichnisnamen für den Betrachter auch im Browser leserlich sein...
          WHILE (!$asleep) { $sheep++; }

          Comment


          • #6
            In dem Fall wird dir kaum etwas anderes übrig bleiben. Es gibt mW keine Klasse die automatisch die sinnvollste Methode auswählt, um ein Sonderzeichen durch eine Kombination von ASCII Zeichen zu ersetzen.
            This is what happens when an unstoppable force meets an immovable object.

            Comment


            • #7
              Evtl. suchst du das: Script to remove diacritics | lehelk.com

              Gruß,

              Amica
              [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
              Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
              Super, danke!
              [/COLOR]

              Comment

              Working...