如何在没有货币符号的情况下获取价格值?

How to get the price value without currency symbol?

我想在 产品页面 中为 OpenCart 获取不带货币符号的价格值。我为此使用了以下代码。但是,它并不完美。

我找到并使用了以下代码。在 .tpl 文件中。

<?php
 $pricenocurrency = $price;
 $pricenocurrency  = preg_replace( '/\D/', '', $pricenocurrency  );
 echo $pricenocurrency ;
?>

所以,我得到了以下结果。但是,我不想从价格中删除点 (.)。

默认价格 = 86.02€

我得到了 = 8602

我要 = 86.02

添加点到preg_replace条件

 $pricenocurrency  = preg_replace( '/[^.\d]/', '', $pricenocurrency  );

如果价格周围的文本可以包含数字,那么只在数字后保存点数会有点复杂

(?<!\d)\.|[^\d]

上述解决方案工作正常,但如果您的 store.I 上有多种货币,建议使用默认的 opencart 功能。就这样做,

在您的控制器中执行以下操作。

$data['price_without_symbol'] = $this->currency->format($amount,$currency_code,$currency_value,false);

将导致价格没有货币符号。并在您的 .tpl 文件中使用它。如果您的商店支持多种货币,则推荐使用。为知识而休息。 :)

你也可以用这个

<?php
    $pricenocurrency = $price;
    $pricenocurrency  = preg_replace( '/[^0-9.]/', '', $pricenocurrency  );
    echo $pricenocurrency ;
?>