HTML DOM 用点替换逗号
Posted
技术标签:
【中文标题】HTML DOM 用点替换逗号【英文标题】:HTML DOM replace Comma with a Dot 【发布时间】:2021-07-30 12:37:57 【问题描述】:我使用的是 html DOM,这是代码:
<?php
include('simple_html_dom.php');
$html = file_get_html('https://www.funda.nl/beoordelingenwidget/live/16186/3/3%3d33%3b6%3d62/aankoop/');
echo $html->find(".user-reviews-averages-number", 0);
?>
输出是:9,4 但我希望它是 9.3
我试过这个:
<?php
include('simple_html_dom.php');
$html = str_replace(',', '.', $html);
$html = file_get_html('https://www.funda.nl/beoordelingenwidget/live/16186/3/3%3d33%3b6%3d62/aankoop/');
echo $html->find(".user-reviews-averages-number", 0);
?>
但这不起作用。谁能告诉我我需要做什么?
亲切的问候。
【问题讨论】:
将您的$html->find(..)
存储在一个变量中,并将str_replace()
存储在该变量中? ($html = str_replace(',', '.', $html);
不起作用,因为$html
将在下一行被覆盖)
【参考方案1】:
如果你只是使用...
echo $html->find(".user-reviews-averages-number", 0);
你的完整输出实际上是
<span class="user-reviews-averages-number is-high"> 9,<sup>4</sup> </span>
我也不确定为什么在获得 HTML 之前调用str_replace
,但要正确执行此操作,您需要在获得所需元素后获取它。在这里,我在该节点上使用text()
来获取9,4
,然后将,
替换为.
...
// Fetch the node itself
$raw = $html->find(".user-reviews-averages-number", 0);
// extract just the value
echo str_replace(",", ".", trim($raw->innertext()));
【讨论】:
谢谢,但我想保留 @RobMaathuis 我已将text()
调用更改为 innertext()
。
@RobMaathuis 如果这有帮助,请考虑将其标记为已回答 (meta.stackexchange.com/questions/5234/…)。以上是关于HTML DOM 用点替换逗号的主要内容,如果未能解决你的问题,请参考以下文章