Ankündigung

Einklappen
Keine Ankündigung bisher.

Problem mit eregi()

Einklappen

Neue Werbung 2019

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

  • Problem mit eregi()

    Hallo Zusammen

    Seit langem versuche ich zu erreichen, dass für $dateiname nur dann TRUE ausgegeben wird, wenn $dateiname aus folgenden Zeichen besteht:
    - _ . a b c d e f g h i j k l m n o p q r s t u v w x y z
    A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

    Mit folgendem wird jedoch immer TRUE ausgegeben

    Code:
    if (eregi("([-_\.]?[a-z0-9])", $dateiname)) {
      return TRUE;
    }
    else {
      return FALSE;
    }
    Wisst Ihr, was falsch ist?
    Danke für Eure Hilfe!

    MFG Beni


  • #2
    mach mal das \ weg
    wenn man zeichen innerhalb [] zusammenfast muss man die sondzeichen nicht escapen
    und dann muss noch ^ und $ hin
    Code:
    if (eregi("(^[-_.]*[a-z0-9]*$)", $dateiname)) { 
      return TRUE; 
    } 
    else { 
      return FALSE; 
    }

    Kommentar


    • #3
      Funktioniert noch nicht ganz

      Danke für die schnelle Antwort !
      Es funktioniert nun endlich, dass nur bei Zeichen von a-z und Zahlen von 0-9 TRUE zurückgegeben wird.

      Aber die Zeichen . - _ werden dafür jetzt als FALSE erkannt.
      $dateinamen müssten zumindest . als TRUE zurückgeben.

      Kommentar


      • #4
        Mit
        Code:
        if (eregi("^[-_.a-z0-9]*$", $dateiname)) 
        {
            ....
        wirst du das gewünschte Resultat erhalten. Oder, von mit bevorzugt und kürzer:
        Code:
        if (preg_match('/^[\w.-]*$/', $dateiname)) 
        {
            ....
        Allerdings könne dabei, im Gegensatz zu deiner Beschreibung, auch Ziffern enthalten sein.
        Gruss
        L

        Kommentar


        • #5
          Hey, Danke !

          Es funktioniert genau, wie ich es möchte !

          Kommentar

          Lädt...
          X