Dateiname überprüfen

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

  • Dateiname überprüfen

    Hallo, habe stundenlang gegoogelt und gesucht, aber war nicht erfolgreich.

    Ich suche eine PHP-Funktion/Klasse, mit der ich einen String darauf überprüfen kann, ob er einen gültigen Dateinamen darstellt (es geht erstmal um die Schreibweise auf UNIX-Systemen). Gerne auch mittels RegExp.

    '.php' z.B. sollte FALSE ausgeben, 'hallo.php' z.B. TRUE, 'hallo.php ' wieder FALSE usw.

    Wo gibt's sowas? Ich bin selbst nicht so der Experte in Sachen Dateinamen-Schreibweise, daher suche ich entsprechenden Code.

    Danke für eure Hilfe!!

  • #2
    Als erstes mal würde ich mit der entsprechenden funktion einfach mal die führenden und endenden leerzeichen entfernen!
    dann schauen ob in dem string .php vorkommt

    und und und ....

    wofür brauchst du das?

    schick mal die spezifikationen!

    greetz
    maik

    Kommentar


    • #3
      willst du nur überprüfen ob es eine gültige PHP datei ist?

      sonst such mal nach file_exists(
      Mafia Browsergame - Scripts

      Wer glaubt, ein Christ zu sein, weil er die Kirche besucht, irrt sich. Man wird ja auch kein Auto, wenn man in eine Garage geht.
      Albert Schweitzer (14.01.1875 - 04.08.1965)

      Kommentar


      • #4
        Es geht nicht um php-Dateien, sondern um irgendwelche Dateien generell:
        Die Datei sollte mit dem angegebenen Dateinamen erstellbar sein und auch eine beliebige Endung (*.xxx) besitzen. Die weiteren Restriktionen, die durch UNIX vorgegeben werden, kenne ich wie gesagt nicht so genau.

        Und da es keine php-interne Funktion "is_valid_filename()" o.ä. gibt, dachte ich mir, vielleicht gibts sowas schon in Form eines regulären Ausdrucks o.ä.

        Kommentar


        • #5
          Re: Dateiname überprüfen

          Original geschrieben von itsme
          Ich suche eine PHP-Funktion/Klasse, mit der ich einen String darauf überprüfen kann, ob er einen gültigen Dateinamen darstellt (es geht erstmal um die Schreibweise auf UNIX-Systemen). Gerne auch mittels RegExp.

          '.php' z.B. sollte FALSE ausgeben
          .php ist ein gültiger Dateiname.

          Eigentlich gibt es kaum ein Zeichen, dass in Dateinamen nicht vorkommen darf.
          Enthält dein String kein "verbotenes Zeichen", ist es schon ein gültiger Dateiname. Die Reihenfolge der "erlaubten Zeichen" ist imho völlig egal.

          Kommentar


          • #6
            ausserdem steht es jedem Programmierer eigentlich frei Dateien mit eigenen Dateiendungen zu erstellen.
            Bei einem Spiel das ich gemacht habe enden die Dateien z.B. auf .cont was keine offizielle Dateiendung ist.

            Du musst erst mal sagen welche Dateitypen und Namen du zulässt, dann kann man dir eine Regexp erstellen.

            Kommentar


            • #7
              unerlaubte Zeichen in dateinamen sind
              ;+=[ ]',"*\<>/?:| und lehrzeichen.
              "/" kann zwar in dem pfad, aber nicht in namen vorkommen.
              Slava
              bituniverse.com

              Kommentar


              • #8
                ok, meine Vorstellungen:

                erlaubte Zeichen: a-z ; A-Z ; 0-9 ; Leerzeichen ; _ ; - ; . (alles andere nicht erlaubt)

                - Keine Leerzeichen am Anfang und am Ende
                - Keine doppelten Leerzeichen
                - Keine Punkte am Anfang und am Ende
                - Keine doppelten Punkte (mehrere Punkte im Dateinamen aber möglich, z.b. 'include.inc.php')
                - Dateiendung mindestens 1 Zeichen

                Kommentar


                • #9
                  eine datei kann auch ohne dateiendung sein.
                  Slava
                  bituniverse.com

                  Kommentar


                  • #10
                    _meine_ vorstellungen

                    Kommentar


                    • #11
                      - wohl auch nicht am Anfang und am Ende, oder? Und in der Endung würde ich auch nur a-z0-9 zulassen.
                      PHP-Code:
                      function valid_name($string){
                       if(
                      preg_match("/^(([a-z0-9_][\\.\\-\\ ]?)*[a-z0-9_])?\\.[a-z0-9]{1,8}$/i",$string)){
                        return 
                      true;
                       }
                       return 
                      false;

                      hier also ein Vorschlag.

                      Dateien ohne nahme z.B. .htacces sind damit auch gültig.
                      Zuletzt geändert von jmc; 22.10.2006, 17:27.

                      Kommentar


                      • #12
                        wie wär der ausdruck, wenn man auf mindestens 1 Zeichen vor dem Endungspunkt bestehen würde (also ".htaccess" = ungültig)?

                        du hast recht: es wäre besser, wenn die Dateiendung nur a-z und 0-9 enthalten würde.
                        Ließe sich das machen?

                        Kommentar


                        • #13
                          sei mir net bös, aber ein bischen selber informieren wäre net schlecht:

                          http://www.php-resource.de/handbuch/...preg-match.htm

                          ansonsten lad dir doch selfphp runter ...

                          phpman wäre auch net schlecht!

                          greetz

                          maik

                          Kommentar


                          • #14
                            einfach das ? weg und es sollte stimmen

                            PHP-Code:
                            function valid_name($string){
                             if(
                            preg_match("/^([a-z0-9_][\\.\\-\\ ]?)*[a-z0-9_]\\.[a-z0-9]{1,8}$/i"$string)){
                              return 
                            true;
                             }
                             return 
                            false;

                            Kommentar


                            • #15
                              Nach diesem Audruck darf eine Dateiendung max. 8 Zeichen lang sein - was nicht Teil der Anforderungen war, oder?

                              Kommentar

                              Lädt...
                              X