1. Weiterleitung zu NetzLiving.de
  2. Forum
    1. Unerledigte Themen
  3. zum neuen Forum
  • Anmelden
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

special chars

    • Frage
  • maciek
  • 18. September 2003 um 22:00
  • Unerledigt
Hallo zusammen,

das Informatik-Forum geht in den Archivmodus, genaue Informationen kann man der entsprechenden Ankündigung entnehmen. Als Dankeschön für die Treue bekommt man von uns einen Gutscheincode (informatikforum30) womit man bei netzliving.de 30% auf das erste Jahr sparen kann. (Genaue Infos sind ebenfalls in der Ankündigung)

Vielen Dank für die Treue und das Verständnis!
  • maciek
    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 ...

  • boni
    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
    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. ;)

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

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

  • Maximilian Rupp 27. Dezember 2024 um 12:08

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

  1. Datenschutzerklärung
  2. Impressum