String zu legitimen Verzeichnisnamen für mkdir()

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • 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
    Zitat von nichtsooft Beitrag anzeigen
    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.

    Kommentar


    • #3
      Zitat von wahsaga Beitrag anzeigen
      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++; }

      Kommentar


      • #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.

        Kommentar


        • #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++; }

          Kommentar


          • #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.

            Kommentar


            • #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]

              Kommentar

              Lädt...
              X