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
    $html = '<div class="product-price-value" itemprop="price">$7.49</div>';
    preg_match('/<div class="product-price-value">(.*?)<\/div>/s', $html, $match);
    
    var_dump($match); // Hier wird ein leeres Array zurückgegeben
    
    $testHtml = '<div class="test">Testcontent</div>';
    preg_match('/<div class="test">(.*?)<\/div>/s', $testHtml, $testmatch);
     
    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
    <div class="product-price-value">

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

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

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

  • Hey,

    aso.. ich dachte es ist wie bei den CSS-Selektoren. Wenn ich nur die Klasse anspreche bekomme ich auch den Inhalt.

    Da habe ich mich geirrt.

    Vielen Dank! :)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!