PHP中的正则表达式返回的不是预期的结果
我是PHP新手,希望有人能帮我 有一个网站包含以下HTML:PHP中的正则表达式返回的不是预期的结果,php,regex,Php,Regex,我是PHP新手,希望有人能帮我 有一个网站包含以下HTML: <span id="sell_usd_place">1.6640</span> 请任何人解释一下: 为什么我只得到“1.6640”而没有 1.6640 上面输出的“字符串(39)”中的“39”是什么 提前谢谢你 使用而不是正则表达式。正则表达式不适合可靠地解析HTML 例如: $html = file_get_contents('http://www.a_bank.com/currency-rates/');
<span id="sell_usd_place">1.6640</span>
请任何人解释一下:
1.6640
$html = file_get_contents('http://www.a_bank.com/currency-rates/');
$doc = new DOMDocument();
$doc->loadHTML($html);
$span = $doc->getElementById('sell_usd_place');
$value = $span->nodeValue;
echo $value; # 1.6640
对于解析xml/html,您需要使用库来构建html/xml dom树,对于解析,例如此库1)您只看到呈现/格式化的文本,2)字符串(39)=长度
1.6640
。元素0是整个匹配项,元素1是第一个(…)
捕获的子字符串。字符串(39)表示字符串的长度为39。我有一种直觉,你把它扔了,然后在网络浏览器中查看。看看源代码。web浏览器将对您隐藏HTML标记。@Naumov谢谢!我去看看。
array(2) { [0]=> string(39) "1.6640" [1]=> string(6) "1.6640" } 1.6640
1.6640array(0) { }
$html = file_get_contents('http://www.a_bank.com/currency-rates/');
$doc = new DOMDocument();
$doc->loadHTML($html);
$span = $doc->getElementById('sell_usd_place');
$value = $span->nodeValue;
echo $value; # 1.6640