Preg Match - Unerklärliches Ergebnis

  • Hey,


    ich lese gerade Daten aus einer Seite aus. Dazu habe ich mich mit preg_match beschäftigt und ein Pattern gefunden welches funktioniert.


    Das komische ist nur, dass es bei 2 gleichen Elemente mit anderer Klasse mir nur von 1 Element den Inhalt zurückgibt.

    Ich kann es nicht nachvollziehen.


    Hier ist der Code:

    PHP
    1. $html = '<div class="product-price-value" itemprop="price">$7.49</div>';
    2. preg_match('/<div class="product-price-value">(.*?)<\/div>/s', $html, $match);
    3. var_dump($match); // Hier wird ein leeres Array zurückgegeben
    4. $testHtml = '<div class="test">Testcontent</div>';
    5. preg_match('/<div class="test">(.*?)<\/div>/s', $testHtml, $testmatch);
    6. var_dump($testmatch); // hier Testcontent


    Habt ihr eine Idee warum ich beim Ersten nicht zurückgegeben bekomme?


    Schöne Grüße,
    Stef

  • Hi,


    guck dir mal an, wonach du im ersten Fall suchst.


    Du suchst nach


    HTML
    1. <div class="product-price-value">


    Aber in dem zudurchsuchenden Code ist noch das Attribut itemprop geschrieben.

    HTML
    1. <div class="product-price-value" itemprop="price">

    Er kann es also nicht findent, da du im Suchstring nach product-price-value den Tag schliesst.