簡體   English   中英

php preg匹配解析HTML

[英]php preg match parse html

我想從字符串中獲得1,9110

<span class="c_name">€ EUR</span> <span class="c_value">1,9110</span>

我的代碼是:

// EUR //
if(preg_match('/<span class="c_name">€ EUR<\/span> <span class="c_value">(.*?)<\/span>/mis', $rawresult, $result))
{
    $banks['access']['sale']['EUR'] = $result[1];
} else {
    $banks['access']['sale']['EUR'] = false;
}
var_dump($banks);
// EUR //

但是這段代碼不起作用

你不需要一個正則表達式,你可以使用帶有特定標志的filter_var來容納數千個

echo filter_var('<span class="c_name">€ EUR</span> <span class="c_value">1,9110</span>', FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_THOUSAND);

https://eval.in/534892

你的正則表達式在歐元符號上崩潰了。 試着像這樣逃避它:

if(preg_match('/<span class="c_name">\x{20AC} EUR<\/span> <span class="c_value">(.*?)<\/span>/misu', $rawresult, $result))
'<span class="c_value">(.*?)<\/span>/s';

或嘗試

if(preg_match('/<span class="c_name">.*?EUR<\/span> <span class="c_value">(.*?)<\/span>/mis', $rawresult, $result))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM