【问题标题】:HTML DOM replace Comma with a DotHTML DOM 用点替换逗号
【发布时间】: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-&gt;find(..) 存储在一个变量中,并将str_replace() 存储在该变量中? ($html = str_replace(',', '.', $html); 不起作用,因为$html 将在下一行被覆盖)

标签: php html dom


【解决方案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()));

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2022-01-02
  • 1970-01-01
  • 1970-01-01
  • 2016-09-05
  • 2011-09-14
相关资源
最近更新 更多