preg_match in quelltext suchen

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

  • preg_match in quelltext suchen

    Hallo,

    ich habe folgendes Problem. Ich möchte gerne einen Quelltext nach einem bestimmten Wert durchsuchen. Bis jetzt, habe ich folgendes:

    PHP-Code:
          $Start_ean '<tr> <td>EAN Code</td>';
          
    $End_ean '</td>';

           
    preg_match("#$Start_ean(.*)$End_ean#"$w$ean);
            
    $output_array[$products_model[$a]]['ean'] = $ean[1]; 
    nur leider wird nichts gefunden. Der Quelltext, sieht so aus:

    PHP-Code:
    <tr> <td>EAN Code</td>
        <
    td align="center">47110815</td> </tr
    ich würde mich freuen, wenn mir jemand weiterhelfen kann!?

    Grüße aus Berlin

  • #2
    1. verwende preg_match_all
    2. benutze die modifier s und U
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      Hallo MelloPie,

      genau da ist ja mein Problem. Ich habe schon viele Versuche gestartet, die ich so bei google finden konnte. Vielleicht, kannst du mir dazu mal ein kleines Beispiel geben, ich wäre dir sehr verbunden!

      Kommentar


      • #4
        Na er hat dir doch zwei *konkrete* Hinweise gegeben. Damit kannst du doch arbeiten und dein Problem mal genauer angehen.
        Google hat damit nix zutun...

        Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

        bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
        Wie man Fragen richtig stellt

        Kommentar


        • #5
          Hallo,

          ich habe versucht, über google eine Lösung zu finden. Mein Problem ist, dass ich nicht richtig verstehe, wie man diese:

          #$Start_ean(.*)$End_ean#

          am besten zusammensetzt. Entschuldigung, aber da hilft mir auch ein s & U nichts. Es gibt ja unendlichen Möglichkeiten, zwischen Anfang und Ende Werte anzugeben wie z.B. [0-9] usw... Aber ich finde die Lösung für s & U nicht? Leider hilft auch die php.net dabei nicht viel weiter oder ich habe was übersehen, dass kann auch sein...

          Kommentar


          • #6
            Du weisst aber schon was s und u sein soll oder?
            gruss Chris

            [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

            Kommentar


            • #7
              Hallo,

              nein scheinbar, weiß ich das nicht. erklär es mir doch bitte einmal.
              Ich danke dafür...

              Kommentar


              • #8
                Re: preg_match in quelltext suchen

                Original geschrieben von SLSB02
                Ich möchte gerne einen Quelltext nach einem bestimmten Wert durchsuchen. Bis jetzt, habe ich folgendes:

                PHP-Code:
                      $Start_ean '<tr> <td>EAN Code</td>';
                      
                $End_ean '</td>'
                Ist das dein Suchmuster?


                PHP-Code:
                       preg_match("#$Start_ean(.*)$End_ean#"$w$ean);
                        
                $output_array[$products_model[$a]]['ean'] = $ean[1]; 
                So lange du noch kein Reg-Ex-Ex-perte ;-) bist, aber auch, wenn du benutzerdefinierte Suchmuster verarbeiten möchtest, würde ich dir dringend die Funktion preg_quote() ans Herz legen. Die sorgt dafür, dass Zeichen, die in einem PCRE eine besondere Bedeutung haben "entwertet" werden.

                Und gleichzeitig solltest du in solchen Fällen natürlich auf die lustige Variablenexpansion verzichten, die PHP mit seinen "doppelt-gequoteten" Strings bietet.

                PHP-Code:
                $sart_ean '<tr> <td>EAN Code</td>';
                      
                $End_ean '</td>';

                $pcre '/' .  
                        
                preg_quote($start_ean'/') . 
                        
                '(.*?)' // kuerzestmoeglicher (?) Text dazwischen (.*)
                        
                preg_quote($end_ean'/') . 
                        
                '/s'// sorgt dafuer, dass . fuer ein beliebiges Zeichen steht

                // findet das erste Auftreten deines Suchmusters
                preg_match($pcre$heuhaufen$treffer); 
                Wenn du alle passenden Einträge finden möchtest, solltest du den Tipp mit preg_match_all() beherzigen.
                Klingon function calls do not have “parameters”‒they have “arguments”‒and they always win them!

                Kommentar


                • #9
                  Original geschrieben von SLSB02
                  Hallo,

                  nein scheinbar, weiß ich das nicht. erklär es mir doch bitte einmal.
                  Ich danke dafür...
                  Wenn du Google mit z.B mit Modifier+Regex gefüttert hättest, wärst du vielleicht selbst drauf gekommen. Das steht in so ziemlich jedem Tutorial.

                  Schau dir einfach mal
                  das an.

                  Erstens kannst du damit deine Ausdrücke testen und gleichzeitig findest du da auch ein Tutorial.
                  gruss Chris

                  [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

                  Kommentar

                  Lädt...
                  X