2017-01-06 16 views
0

如何使用preg_match_all從低於html獲得價格1.199,00在php中使用正則表達式獲取值?

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

代碼

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

請向我們展示您嘗試過的正則表達式。 – Rabban

回答

1

這將是一個簡單的例子:

<?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]); 

輸出顯然是:

string(8) "1.199,00" 

不過請注意,這使用正則表達式解析HTML標記或從中提取值是值得懷疑的。這樣的解決方案往往是挑剔的,所以對標記的微小修改不夠穩健。使用DOM解析器要好得多。