1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

special chars

    • Frage
  • maciek
  • 18. September 2003 um 22:00
  • Unerledigt
  • maciek
    16
    maciek
    Mitglied
    Punkte
    2.805
    Beiträge
    434
    • 18. September 2003 um 22:00
    • #1

    eine Frageee: Es muß doch eine Funktion geben, die alle Character in einem String ersetzt, die nicht in einem Dateinamen vorkommen dürfen, oder?
    Ich bin sicher nicht der erste, der einem - nicht besonders intelligenten :devil:- User, das eingeben eines Dateinamen überlassen will ...

    *** Make it idiot proof, and someone will build a better idiot. ***

  • boni
    5
    boni
    Mitglied
    Punkte
    220
    Beiträge
    38
    • 18. September 2003 um 23:05
    • #2

    Hi,

    da du nicht die Sprache spezifiziert hast, spreche ich jetzt vom allgemeinen Fall:
    In der Regel wird bei derartigen Aufgaben nicht irgendwas ersetzt sondern einfach gecheckt, ob der String ein gültiger Dateinamen ist.
    Das geht recht einfach mit regular Expressions. Für Perl, php (preg_match benutzt perl-syntax) kann man das bei selfhtml.teamone.de unter Perl nachlesen.

    Eine weitere wichtige Sache wäre dann noch dass du checkst, ob die Datei bereits existiert. Dazu kannst du z.B. ein "ls [string]" durchfürhren und schauen ob es ein Ergebnis gibt. Natürlich solltest du das tun, _nachdem_ du verifiziert hast, dass das ein gültiger Dateiname ist. Sonst könnte jemand lustiger nach einem Strichpunkt beliebigen Shellcode ausführen.

    Natürlich kannst du mit RegExps auch z.B. alles durch X ersetzen, was nicht zu einer bestimmten menge an Zeichen gehört, aber das ist die umständliche Variante.

    lG
    Christoph

  • maciek
    16
    maciek
    Mitglied
    Punkte
    2.805
    Beiträge
    434
    • 19. September 2003 um 01:06
    • #3

    erm ... ja. Ich hab vergessen, die Sprache zu spezifizieren. Es geht um PHP. Danke auch für die Ausführung, aber das Ersetzen über preg_* ist nicht das Problem.

    Ich suche nach einer Funktion ähnlich wie htmlentities, die das für mich macht. Daß ich es mir selber für alle deutschen Sonderzeichen basteln kann, weiß ich schon. Aber ich bin zu faul dafür. :winking_face:

    Wenn der user also z.B. eingibt, daß sein file "Ein Eßlöffel" heißen soll, dann möchte ich daß da draus "ein-essloeffel" generiert wird. Ich weiß, ich weiß. Ein tolles Bsp. :applaus:

    Wie gesagt ... ich kann ja nicht der erste sein, der so etwas braucht ...

    *** Make it idiot proof, and someone will build a better idiot. ***

  • max1005
    7
    max1005
    Mitglied
    Punkte
    405
    Beiträge
    50
    • 22. September 2003 um 22:25
    • #4

    Soweit ich weiß, gibt es da keine spezielle Funktion. Hier ein "Alternativvorschlag", wie das ich gelöst habe:

    PHP
    ...
    $SonderzeichenZeichen = array ("ä" => "ae", "ö" => "oe", "ü" => "ue", "Ä" => "ae", "Ö" => "oe", "Ü" => "ue", "ß" => "ss", " " => "_");
    $DateiName = $Datei['name'];
    $DateiName = strtr($DateiName, $SonderzeichenZeichen);
    $DateiName = strtolower($DateiName);
    ...
  • maciek
    16
    maciek
    Mitglied
    Punkte
    2.805
    Beiträge
    434
    • 22. September 2003 um 23:57
    • #5

    hmmm ... an so was hab ich leider auch schon denken müssen, wobei ich eher gedacht habe über den ASCII Code zu ersetzen, weil man sonst noch irgendwas vergißt ...

    das blöde ist nur z.B. daß alle ä, à, und was es da noch alles gibt, nicht direkt beiander liegen, sodaß man einfach eine Folge von Buchstaben im durch a ersetzen könnte ...

    *** Make it idiot proof, and someone will build a better idiot. ***

  • Maximilian Rupp 27. Dezember 2024 um 12:08

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Benutzer online in diesem Thema

  • 1 Besucher

Rechtliches

Impressum

Datenschutzerklärung