2017-01-06 2 views
0

Wie kann ich den Preis 1.199,00 von unten html mit preg_match_all bekommen?Erhalten Sie einen Wert mit Regex in PHP?

`<h4><span class="price_label">Preis:&nbsp;</span>1.199,00 Euro &nbsp;(inkl. 19% MwSt.)</h4>` 

-Code

<?php 
    $pattern = '#'.$regex.'#'; 
    preg_match_all($pattern, $data, $price); 
    print_r(price); 
    ?> 
+0

Bitte zeigen Sie uns den Regex, den Sie ausprobiert haben. – Rabban

Antwort

1

Dies ist ein einfaches Beispiel wäre:

<?php 
$subject = '<h4><span class="price_label">Preis:&nbsp;</span>1.199,00 Euro &nbsp;(inkl. 19% MwSt.)</h4>'; 
$pattern = '|<span[^>]+class="price_label".*>[^<]+</span>([0-9.,]+)\s*.*$|'; 
preg_match($pattern, $subject, $tokens); 
var_dump($tokens[1]); 

Der Ausgang offensichtlich ist:

string(8) "1.199,00" 

ist jedoch zu beachten, dass es Es ist fraglich, reguläre Ausdrücke zu verwenden, um HTML-Markup zu analysieren oder Werte daraus zu extrahieren. Solche Lösungen neigen dazu, wählerisch zu sein, also nicht robust gegenüber geringfügigen Modifikationen des Markups. Es ist viel besser, einen DOM-Parser zu verwenden.

Verwandte Themen