четверг, 13 августа 2009 г.

Преобразовываем число в более читаемый вид

Функция предназначена для преобразования цифровой информации в более читаемый вид. Под цифровой информацией подразумевается стоимость товара, номер телефона и другие виды цифровой информации, которые можно разбить закономерным способом.

Функция на писана на PHP.


<?php
function СonvertNumber($n, $g = ' ', $c = 3)
{
if ($decimal = strstr($n, '.'))
{
$n = str_replace($decimal, '', $n);
}

return strrev( wordwrap( strrev( strval( $n ) ), $c, $g, 1) ).$decimal;
}
?>




Работа данной функции для телефонных номеров:
Телефон: <?php echo СonvertNumber( 344452, ' – ', 2 ); ?>
Телефон: 34 – 44 – 52

Телефон: <?php echo СonvertNumber( 344452, ' – ', 3 ); ?>
Телефон: 344 – 452


Работа данной функции для цены, суммы, стоимости и любого числа:
Цена: <?php echo СonvertNumber( 1999 ); ?> Руб.
Цена: 1 999 Руб.

Цена: <?php echo СonvertNumber( 999.99 ); ?> Руб.
Цена: 999.99 Руб.

Стоимость: <?php echo СonvertNumber( 1000000 ); ?>
Стоимость: 1 000 000 €



Описание функции СonvertNumber();:
СonvertNumber ( ЧИСЛО, РАЗДЕЛИТЕЛЬ, КОЛ-ВО СИМВОЛОВ );

ЧИСЛО — В водиться число. Целое или десятичное.
РАЗДЕЛИТЕЛЬ — Разделитель числа через заданное количество символов. По умолчанию стоит пробел. В качестве разделителя можно использовать любой символ, но не в HTML сущности, т.е. не использовать разделитель в виде &ndash; или &#8211;.
КОЛ-ВО СИМВОЛОВ — Количество символов до разделителя. По умолчанию стоит 3. Если данную функцию использовать для разделения телефонов, то надо учесть принцип работы функции.


Принцип работы функции:
Принцип функции очень простой, отправленное число преобразуется в текстовый формат, функцией strval();, затем все символы переставляются с права на лева, функцией strrev();, например: 123456, будет 654321, отступ будет произведет с лева на права, функцией wordwrap();, например: в шаге 3 654 321. В конце функция strrev(); переворачивает данные обратно, например: получаем 123 456.

!¡ number_format($number, 2, '.', '');

Комментариев нет: