Warum wird String nicht gefunden?

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

  • Warum wird String nicht gefunden?

    Hallo,

    Ich suche mit preg_match einen String in einer Variable der dort auch vorhanden ist. Allerdings gibt mit preg_match False zurück!

    Kann jemand erkennen warum?

    Danke

    PHP-Code:
    $strBody 'TD ALIGN="center" VALIGN="middle">
                <A CLASS="button" HREF="http://s1.egal.com/index.php?sysm=file_transfer&sysf=center&action=download&file_id=825410&file_name=upload.zip&user_session=c58779nmtlmoclh5pos7o1adg6&option=free"><SPAN>      Free      </SPAN></A>
                </TD>
                <TD></TD>
                <TD ALIGN="center" VALIGN="middle">
                <A CLASS="button" HREF="http://s1.egal.com/index.php?sysm=file_transfer&sysf=center&action=download&file_id=825410&file_name=upload.zip&user_session=c58779nmtlmoclh5pos7o1adg6&option=premium"><SPAN> Premium </SPAN></A>
                </TD>'
    ;
    $strFind '<A CLASS="button" HREF="http://s1.egal.com/index.php?sysm=file_transfer&sysf=center&action=download&file_id=825410&file_name=upload.zip&user_session=c58779nmtlmoclh5pos7o1adg6&option=free">';
    echo (
    preg_match('#'.$strFind.'#i',$strBody)) ? 'Ja' 'Nein'
    sorry! zeilemumbruch wird das Beispiel für den Test zerstören!
    Zuletzt geändert von TriphunEM; 04.03.2009, 12:10.

  • #2
    warum arbeitest du nicht mit einem einfachen strpos, wqenn der komplette string bekannt ist?

    peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      weil ich eigentlich ein preg_replace machen muss!

      hab hier jetzt mal ein preg_match genommen, um das problem besser schildern zu können!

      Kommentar


      • #4
        das Problem sind die /. die müssen escaped werden.

        peter
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Kommentar


        • #5
          sicher?

          denn ich will links in einem quellcode ersetzen, manchmal match er diese und machmal nicht! Es muss also an etwas anderem liegen!

          zumal ich #...#i verwende und nicht /.../i

          Kommentar


          • #6
            Verwende für sowas doch einfach die String-Funktionen, zum Beispiel str_replace kann dir helfen. Das ist vor allem dann einfacher, wenn man keine Ahnung von regulären Ausdrücken hat.

            Kommentar


            • #7
              schon versucht...str_replace() nimmt auch keine ersetzung vor! irgendwas stimmt in dem string nicht...

              das einzige was denn string findet ist strpos() allerdings ist das nicht zweckgebunden für mich...

              Kommentar


              • #8
                Original geschrieben von TriphunEM
                schon versucht...str_replace() nimmt auch keine ersetzung vor!
                Doch, habs grade ausprobiert weil ich mir nich vorstellen kann das es nicht funktioniert. Wie hast du es denn "versucht"?
                Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.

                Kommentar


                • #9
                  Original geschrieben von Kropff
                  das Problem sind die /. die müssen escaped werden.
                  Und mindestens das Fragezeichen auch noch ...


                  Das macht man, nachdem man ja ein bisschen im Manual nachgelesen hat, in so einem Falle am einfachsten mittels preg_quote. Die Funktion kuemmert sich naemlich darum, alle Zeichen, die in einem regulaeren Ausdruck Sonderbedeutung haben koennten, entsprechend zu maskieren.

                  Und sobald man die bei deinem Beispielcode auf $strFind anwendet, bevor man es in preg_replace einsetzt, wird, oh Wunder, aus dem 'Nein' ein 'Ja' ...
                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Kommentar

                  Lädt...
                  X