我想在产品页面中为 OpenCart 获取没有货币符号的价格值。我使用以下代码。但是,它并不完美。
我找到并使用了以下代码。在 .tpl 文件中。
<?php
$pricenocurrency = $price;
$pricenocurrency = preg_replace( '/\D/', '', $pricenocurrency );
echo $pricenocurrency ;
?>
所以,我得到以下结果。但是,我不想从价格中删除点(。)。
默认价格 = 86.02€
我有 = 8602
我想 = 86.02
答案 0 :(得分:2)
将点添加到preg_replace条件
$pricenocurrency = preg_replace( '/[^.\d]/', '', $pricenocurrency );
如果价格周围的文字可能包含数字,那么只保存数字后的点数会有点复杂
(?<!\d)\.|[^\d]
答案 1 :(得分:1)
上述解决方案运行正常,但如果您的商店有多种货币,我会建议使用默认的opencart功能。就这样做,
在您的控制器中执行以下操作。
$data['price_without_symbol'] = $this->currency->format($amount,$currency_code,$currency_value,false);
将导致没有货币符号的价格。并在.tpl
文件中使用它。如果您的商店支持多种货币,建议您使为知识而休息。 :)
答案 2 :(得分:0)
您也可以使用此
// Manually-created *valid* JSON
func JsonTest1(w http.ResponseWriter, r *http.Request) {
test1 := "something1"
test2 := 456
// %q instead of %s gives us a quoted string:
j1 := []byte(fmt.Sprintf(`
{
data: {
"test1": %q,
"test2": %d
}
}
`, test1, test2))
w.Header().Set("Content-Type", "application/json")
w.Write(j1)
}
// JSON created with json.Marshal
func JsonTest2(w http.ResponseWriter, r *http.Request) {
test1 := "something1"
test2 := 456
data := map[string]interface{}{
"data": map[string]interface{}{
"test1": test1,
"test2": test2,
},
}
j1, _ := json.Marshal(data)
w.Header().Set("Content-Type", "application/json")
w.Write(j1)
}