我有这个 HTML 代码:
<span class="price">Price: <font class="rosu_12px_bold">2'099<sup>99</sup></font> EUR</span>
我设法提取了价格:2'09999
我无法捕捉 sup 标签并插入 .
现在,在我的数据库中,我只能存储实数
提取的值不是数字,因此在尝试插入此值时我得到 0 值。
我只能这样插入:2099.99
我永远不知道我提取的值是什么样的,所以我需要一个解决方案来格式化它。
我有这个 HTML 代码:
<span class="price">Price: <font class="rosu_12px_bold">2'099<sup>99</sup></font> EUR</span>
我设法提取了价格:2'09999
我无法捕捉 sup 标签并插入 .
现在,在我的数据库中,我只能存储实数
提取的值不是数字,因此在尝试插入此值时我得到 0 值。
我只能这样插入:2099.99
我永远不知道我提取的值是什么样的,所以我需要一个解决方案来格式化它。
试试这个:
<?php
$abc="2'099";
echo preg_replace('/[^0-9]/i', '', $abc);
?>
编辑:请记住,这也将替换句点(。)。
另一个编辑:您可以使用 strip 标签来去除 html 标签
<?php
$abc="<font class='rosu_12px_bold'>2'099<sup>99</sup></font>";
echo preg_replace('/[^0-9.]/i', '', strip_tags($abc));
?>
编辑:但是 sup 标签之间的 99 可能表示货币的较低面额可能是 99 美分。在这种情况下,上面的示例将不起作用。
还有一个编辑,在使用条形标签之前,您可以用句点(。)替换 sup 标签,然后使用条形标签,如果您想保持货币的较低面额。
希望这可以帮助
我只得到类似1'23499
或1.99989
或1'345'99
或1'234.99
或其他格式的字符串。
问题是如何获得 99 美分?
这些值涉及以下字符:
0 1 2 3 4 5 6 7 8 9 . , '
以任何可能的组合
我的解决方案是:
0 - 9
用.
(点)替换所有不是数字的东西
解析字符串,从位置 0 到 strlen-1,从第一个.
(点)的位置开始,尝试插入 3 到 3 个字符.
(点)。如果已到达字符串的末尾,请避免插入 .
查找插入 的最后一个.
(点.
)的位置并删除所有其他(点)。
结果应该是数字 1234.99。