Как убрать копейки из цены на php
- Подробности
- Категория: PHP
- Просмотров: 2895
Часто возникает вопрос: "Как убрать копейки из цены на php?" на него и будет отвечать в этой статье на примере одной cms...
У меня встал вопрос, вернее у моего клиента - нужно было убрать нули из цены, которые появились после подключения к базе 1С...скажу сразу это старый движок shop-script premium , о которой уже даже не пишут...но функции php везде применяются одинаковые...поэтому начал разбираться....
Залез на форумы, там предлагают округлять цену функцией round(), но ведь она же округляет цену, а это не правильно...мне же нужно точно...
Тогда я залез сам в движок, нашел файл /core_functions/functions.php нашел в нем функцию, которая занимается составлением цены:
function _formatPrice($price) {
$price = (string) $price;
if (!strstr($price, "."))
$price .= ".00";
$oldPrice = $price;
$res = "";
$i = 0;
for ($i = strlen($price) - 1; $i >= 0; $i--) {
if ($price[$i] == ".")
break;
else
$res = $price[$i] . $res;
}
$res = "." . $res;
$i--;
$digitCounter = 0;
for (; $i >= 0; $i--) {
$digitCounter++;
$res = $price[$i] . $res;
if ($digitCounter == 3 && $i != 0) {
$res = "," . $res;
$digitCounter = 0;
}
}
return $res;
}
и заменил на это:
function _formatPrice($price) {
$price = (string) $price;
$oldPrice = $price;
$res = "";
$i = 0;
for ($i = strlen($price) - 1; $i >= 0; $i--) {
if ($price[$i] == ".")
break;
else
$res = $price[$i] . $res;
}
$res = number_format($res);
$res = $res." ";
return $res;
}
То есть удалил вообще копейки и была применена функция number_format(), которая автоматом подставляет запятую перед разделяя тысячные:
Что мы получили: 15600.00-->15600-->15,600
Это в точности совпадало с желанием клиента, на этом и остановились...