Ankündigung

Einklappen
Keine Ankündigung bisher.

dateiname mit Umlauten speichern

Einklappen

Neue Werbung 2019

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

  • dateiname mit Umlauten speichern

    Ex ist schon spät und ich komm wieder mal nicht drauf
    PHP-Code:
    <?php
    if ($_POST) {

     
    $Name $_POST["Name"];
     
    $datum date("d.m.Y",time()); // Aktuelles Datum ermitteln
     
    $text "Name Der Datei:$Name";


     
    $dateiname "Verzeichniss/$Name.txt"// Name der Datei
     
    $handler fOpen($dateiname"a+"); // Datei zum Text anhängen öffnen
     
    fWrite($handler$text); // Dateiinhalt in die Datei schreiben
     
    fClose($handler); // Datei schließen
    }
    ?>
    So weit so gut! Aber !! was ist wenn Umlaute verwendet werden als Speichername für die TXT?!

    Sorry aber hab Google echt auf den Kopf Gestellt

  • #2
    Hallo

    1. hast du es ausporbiert, was passiert?
    2. Ist es nötig?
    wandle doch einfach ä in einen Zeichensatz um, und wenn du nachdateinamen suchst, diese aufrust oder sonstiges machst du das gleiche mit anfragen.
    Der Unterschied zwischen dem richtigen Wort und dem beinahe richtigen ist derselbe Unterschied wie zwischen dem Blitz und einem Glühwürmchen.

    Kommentar


    • #3
      Hallo,
      zur not kannst du dir auch eine Funktion (siehe Beispiel unten) selbst bauen die Zeichen ersetz. Dazu einfach ein Multidimensionales Array nehmen und mit werten füttern. (1. Wert wird durch 2. Ersetzt.)

      PHP-Code:
      function f_specialchars($string) {
          
          
      $convert = array (
              array (
      'ä','ae',),
              array (
      'ö','oe',),
          );
          
          
          foreach (
      $convert as $array) {
              
      $string str_replace($array[0], $array[1], $string);
          }
          return 
      $string;
      }

      echo 
      f_specialchars('ääöäöäö'); 
      Mfg Nightmares

      Kommentar


      • #4
        HI danke für deinen Vorschlag das Problem sieht folgendermaßen aus anstatt Bücher.txt zu speichern mach der mir Bücher.txt was ja wieder beim einlesen Probleme macht Trotzdem Vielen DANK Nightmares hat leider nicht geklappt

        Kommentar


        • #5
          Du musst vor dem Speichern den "geplanten" Dateinamen umwandeln, vor dem einlesen dann natürlich auch. Und du musst mein Array noch ergänzen. Im jetztigen zustand würde es nur "ä" und "ö" ersetzen.


          DH:


          PHP-Code:
          function f_specialchars($string) {
              
              
          $convert = array (
                  array (
          'ä','ae',),
                  array (
          'ö','oe',),
                  array (
          'ü','ue',),
                  array (
          'ß','s_',),
              );
              
              
              foreach (
          $convert as $array) {
                  
          $string str_replace($array[0], $array[1], $string);
              }
              return 
          $string;
          }


          if (
          $_POST) {

           
          $Name $_POST["Name"];

           
          // säubern des namens:
           
          $Name f_specialchars($Name);

           
          $datum date("d.m.Y",time()); // Aktuelles Datum ermitteln
           
          $text "Name Der Datei:$Name";

           
          // kleine änderung
           
          $dateiname "Verzeichniss/" $Name ".txt"// Name der Datei
           
          $handler fOpen($dateiname"a+"); // Datei zum Text anhängen öffnen
           
          fWrite($handler$text); // Dateiinhalt in die Datei schreiben
           
          fClose($handler); // Datei schließen

          Kommentar


          • #6
            Und was ist wenn der User jetzt nocht / oder oder sonstige Zeichen nutzt die nicht erlaubt sein sollen?? Am besten du filterst alles heraus was nicht alphanumerisch ist.

            Kommentar


            • #7
              Jupp. Ne Whitelist zu erstellen, wäre das beste. Alle Zeichen, die nicht in der Whitelist sind, einfach durch einen Unterstrich _ ersetzen. Vor allem muss ja verhindert werden, dass der Benutzer keinen Slash bzw. Backslash im Dateinamen verwendet.

              Man sollte dem Benutzer dann aber auch die Whitelist nennen.

              Kommentar


              • #8
                Whitelist ??? da muss ich mich zuerst mal durch die weiten von Google lesen lach aber kling auf jedenfalls gut und einleuchtend

                Kommentar


                • #9
                  Whitelist = Liste mit erlaubt Zeichen
                  Blacklist = Liste mit verbotenen Zeichen.

                  Whitelist -> du kannst sicher gehen dass das Wort den erlaubten Zeichen entspricht, ist aber sehr restrektiv
                  Blacklist -> du weißt zwar dass die Verbotenen Zeichen nicht vorhanden sind, weißt aber nicht ob du ein anderes Zeichen dass verboten gehört vergessen hast und dieses dadurch möglich ist.

                  Die Wörter sieht man auch oft im Zusammenhang mit Firewalls.

                  Kommentar


                  • #10
                    Das Dateisystem sollte mit Umlauten korrekt umgehen können. Ich tippe darauf, daß du den Dateinamen im Systemencoding übergeben musst. Du verwendest utf-8, Windows (ist es ein Windows Server?) verwendet z.B. Codepage 1252 oder sowas in der Art, dort liegen die Umlaute woanders.
                    Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                    Kommentar


                    • #11
                      HI JA ein Win server 2008 AHA? wo liegen sie dann ?

                      Kommentar

                      Lädt...
                      X