preg_match - Problem

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

  • preg_match - Problem

    Moin,

    nochmal folgendes Problem:
    Ich habe eine Schleife, in der die Variable $file jeweils einen Datei- oder Ordnernamen zugewiesen bekommt und diesen dann ausgibt. Jetzt möchte ich prüfen ob es sich um eine Datei handelt (ich will prüfen ob ein . (Punkt) im Dateinamen vorkommt) und dann den Dateinamen mit einem entsprechenden Icon ausgeben. Hier mal der Code:
    PHP-Code:
            $regex '/./';
    if (
    preg_match($regex$file))
     echo 
    '<img src="file.png"><a href="../' $file '">' $file '</a><br/>'
    Das geht aber irgendwie nicht richtig, auch die Ordner werden mit dem Dateiicon dargestellt. Weiß jemand woran es liegt ?

    P.S.: Mit dem regulären Ausdruck bei $regex = 'xxx' bin ich mir nicht sicher, ich denke mal der Fehler liegt da. Aber was muss da rein ?

    Vielen Dank schonmal,

  • #2
    Hallo Pierre!

    Du könntest das ganze auch ohne Reguläre Ausdrücke lösen. Siehe dir dazu mal die Funktion strrchr an.

    Grüße
    Faux

    Kommentar


    • #3
      Der Punkt hat in einem regulären Ausdruck eine besondere Bedeutung, wenn du tatsächlich nach einem Punkt suchen willst, musst du ihn maskieren: \.

      Warum verwendest du nicht is_file?
      Ich denke, also bin ich. - Einige sind trotzdem...

      Kommentar


      • #4
        Original geschrieben von mrhappiness
        Warum verwendest du nicht is_file?
        Original geschrieben von Pierre
        ... und dann den Dateinamen mit einem entsprechenden Icon ausgeben.
        Grüße
        Faux

        Kommentar


        • #5
          Danke faux,

          per
          PHP-Code:
                  if (strrchr($file'.')) 
          {           echo 
          '<img src="file.png"><a href="../' $file '">' $file '</a><br/>';
           }         
           else echo 
          '<img src="folder.png"><a href="../' $file '">' $file '</a><br/>'
          geht es wunderbar. :-)

          @mrhappiness: Ja, ich sollte mir die regulären Ausdrücke wohl nochmal genauer angucken. Danke dir

          Kommentar


          • #6
            und was wenn im ordnernamen ein . ist? nim lieber is_file()

            Kommentar


            • #7
              Hi,

              dass Script soll ja nur auf meinem Webserver laufen und da gibt es keine Ordner mit . im Ordnernamen, also kann ich mir die Arbeit sparen. Trotzdem danke.

              Kommentar


              • #8
                ??? arbeit?

                PHP-Code:
                if (is_file('../'.$file)) 
                {           echo 
                '<img src="file.png"><a href="../' $file '">' $file '</a><br/>';
                 }         
                 else echo 
                '<img src="folder.png"><a href="../' $file '">' $file '</a><br/>'

                Kommentar


                • #9
                  Original geschrieben von faux
                  Original geschrieben von mrhappiness
                  Warum verwendest du nicht is_file?
                  Original geschrieben von Pierre
                  ... und dann den Dateinamen mit einem entsprechenden Icon ausgeben.
                  Grüße
                  Faux
                  Das muss ich nicht verstehen, oder?
                  Ich denke, also bin ich. - Einige sind trotzdem...

                  Kommentar


                  • #10
                    Stimmt, is_file() scheint dann doch etwas geeigneter zu sein. *g*

                    Danke euch.

                    Kommentar


                    • #11
                      Noch ein neues Problem:

                      Ich möchte hinter jedem Dateinamen auch die Dateigröße angeben. Also hab ich einfach ein
                      PHP-Code:
                      $groesse filesize($file); 
                      eingebaut und in der Bedingung
                      PHP-Code:
                      echo '<a href="../' $file '"><img src="file.png" border="0">' $file '</a><i> ('.$groesse.')</i><br/>'; } 
                      Komischerweise wird mir nur von der index.php die Dateigröße angezeigt, bei allen anderen erhalte ich folgende Meldung:
                      Warning: filesize() [function.filesize]: stat failed for log in S:\tux\xampp\htdocs\page\log\index.php on line 142

                      Warum das nun schonwieder?

                      Kommentar


                      • #12
                        Original geschrieben von Pierre
                        Warum das nun schonwieder?
                        Weil du nur den Dateinamen angegeben hast, aber nicht den Pfad ...?
                        I don't believe in rebirth. Actually, I never did in my whole lives.

                        Kommentar


                        • #13
                          Stimmt, manchmal ist es echt verflixt. :-(

                          Vielen Dank.

                          Kommentar

                          Lädt...
                          X