preg_match() erkennt Suchwort nicht??!

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

  • preg_match() erkennt Suchwort nicht??!

    Hallo,

    ich öffne ein animiertes GIF und versuche abzufragen ob es animiert ist (String "NETSCAPE2.0" kommt dann drin vor):

    PHP-Code:
    $tmp "animiert.gif";

    $gif file_get_contents($tmp);
                            
    if(
    preg_match("/^NETSCAPE2.0/"$gif) == 1)
                            
    {
                                    
    echo 
    "animiert!";

    }

    else
                
    {
                                    
    echo 
    "nicht animiert!";


    Das animierte GIF wird aber NIE erkannt... der String kommt aber im GIF vor... muss ich das zur Überprüfung anders einladen oder was ist der Fehler?
    Zuletzt geändert von Truncate; 29.08.2008, 21:07.

  • #2
    Nimm mal das ^ am Anfang weg..

    Kommentar


    • #3
      So geht's jetzt:

      if(preg_match("/NETSCAPE2.0/i", $gif) == 1)

      Mit dem Modifier i müßte es sogar schneller gehen oder?

      Kommentar


      • #4
        Denke nicht, da ein Char-Vergleich (soweit ich mich erinner) auch GK-Schreibung überprüft...
        Wenn du das ignorieren willst, werden, denk ich, zuzusätzliche funktionen aufgerufen like strlower oder so ..

        Zudem sind die Buchstaben eh groß .. warum also das ganze ignorieren ..

        mfg

        Kommentar


        • #5
          Original geschrieben von Truncate
          Mit dem Modifier i müßte es sogar schneller gehen oder?
          warum sollte das schneller gehen, groß- und kleinschreibung überprüfen?

          bedeutend schneller ist eine einfache string-funktion wie strpos().
          wenn ein suchmuster statisch ist, wie deines, dann sind regex-funktionen irgendwie sinnlos, findest du nicht auch?

          ps: beide lösungen gefallen mir nicht - da muss es etwas besseres geben, wie z.b. php-native grafikfunktionen. das kann es nicht sein, habe jetzt nur keine lust zum suchen.

          Kommentar


          • #6
            Original geschrieben von 3DMax bedeutend schneller ist eine einfache string-funktion wie strpos(). wenn ein suchmuster statisch ist, wie deines, dann sind regex-funktionen irgendwie sinnlos, findest du nicht auch?
            Ist nur das Problem, dass die eben nicht funktioniert und keine animierten GIFs erkennt:

            if(!strpos("NETSCAPE2.0", $gif))

            Original geschrieben von 3DMax ps: beide lösungen gefallen mir nicht - da muss es etwas besseres geben, wie z.b. php-native grafikfunktionen. das kann es nicht sein, habe jetzt nur keine lust zum suchen.
            Da gibt's leider nichts... es wird nur GIF allgemein erkannt, aber nicht zwischen statisch und animiert unterschieden:

            http://de.php.net/manual/de/function...-mime-type.php

            Kommentar


            • #7
              Ist nur das Problem, dass die eben nicht funktioniert und keine animierten GIFs erkennt:
              Das kann doch nicht sein, dass man bei seinen Tests nicht den Unterschied zwischen Nadel und Heuhaufen erkennt.

              Ganz zu schweigen von der theoretisch unzureichenden (typunsicheren) Prüfung, die auch im Handbuch genaustens erklärt wird.

              Kommentar


              • #8
                Original geschrieben von TobiaZ
                Das kann doch nicht sein, dass man bei seinen Tests nicht den Unterschied zwischen Nadel und Heuhaufen erkennt.

                Ganz zu schweigen von der theoretisch unzureichenden (typunsicheren) Prüfung, die auch im Handbuch genaustens erklärt wird.
                Toll! Mir wird strpos() vorgeschlagen, ich probiere es aus, es funktioniert nicht und jetzt bin ICH der Blöde?

                Für mich sieht das zwar logisch aus, funktioniert aber eben nicht. Dann bleibt eben nur preg_match() übrig wie es scheint.

                Kommentar


                • #9
                  Toll! Mir wird strpos() vorgeschlagen, ich probiere es aus, es funktioniert nicht und jetzt bin ICH der Blöde?
                  Ja, DU bist der Blöde, weil du nicht in der Lage warst die Parameter zu überprüfen. Sorry, aber wie oft soll man noch predigen, dass der Code nicht einfach kopiert werden soll, sondern verstanden (zur Not mit Hilfe des Handbuchs).

                  Für mich sieht das zwar logisch aus, funktioniert aber eben nicht. Dann bleibt eben nur preg_match() übrig wie es scheint.
                  *lol* Du hast deinen Fehler nicht verstanden, oder? es geht mit strpos. Du bist nur leider nicht in der Lage gewesen es richtig einzusetzen.

                  1) Jetzt lies das Manual
                  2) und danach mein Posting noch mal.
                  3) Solltest du dann deinen Fehler bemerken.

                  Kommentar

                  Lädt...
                  X