Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

Функция деления числа на разряды

Форум для авторов модов для phpBB 2.0.x.
Lektor
phpBB 2.0.7
Сообщения: 574
Стаж: 18 лет

Функция деления числа на разряды

Сообщение Lektor »

Вот у меня есть переменная $size в которой содержится значение - размер файла, я хочу чтоб это число разделялось по разрядам т.е. вместо 6350238 можно было получить 6 350 238 .. просьба помочь написать функцию которая обработывалаб эту переменную и возвращала бы значение в нужном виде..
Xpert
phpBB Guru
phpBB Guru
Сообщения: 5484
Стаж: 20 лет 1 месяц
Поблагодарили: 2 раза

Сообщение Xpert »

Код: Выделить всё

function num_format($number)
{
	if ( $number < 1000 )
	{
		return $number;
	}

	$number_parts = array();

	while ( strlen($number) > 3 )
	{
		$number_parts[] = substr($number, -3, 3);
		$number = substr($number, 0, strlen($number) - 3 );
	}

	$number_parts[] = $number;
	$number_parts = array_reverse($number_parts);

	$number = implode('&nbsp;', $number_parts);

	return $number;
}
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
ra
phpBB 2.0.2
Сообщения: 325
Стаж: 20 лет
Откуда: Беларусь

Сообщение ra »

По моему куда проще использовать

Код: Выделить всё

strrev(wordwrap(strrev($num), 3, ' '))
Xpert
phpBB Guru
phpBB Guru
Сообщения: 5484
Стаж: 20 лет 1 месяц
Поблагодарили: 2 раза

Сообщение Xpert »

Краткость - сестра таланта :)
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Lektor
phpBB 2.0.7
Сообщения: 574
Стаж: 18 лет

Сообщение Lektor »

Xpert
Спасибо, отлично пашет :)
Аватара пользователя
Coagulant
Former team member
Сообщения: 955
Стаж: 19 лет 3 месяца
Откуда: Москва

Сообщение Coagulant »

Вот ещё красивое решение:

Код: Выделить всё

$spaced_size = preg_replace ("/(?<=\d)(?=(\d\d\d)+$)/si", " ", $size);
Аватара пользователя
Поручик
Former team member
Сообщения: 3942
Стаж: 18 лет 11 месяцев
Откуда: Оренбург (Южный Урал)
Благодарил (а): 3 раза

Сообщение Поручик »

Решение будет еще красивей, если использовать одинарные кавычки. Особенно в цикле полезно

Код: Выделить всё

$views = preg_replace ('/(?<=\d)(?=(\d\d\d)+$)/si', ' ', $topic_rowset[$i]['topic_views']);
Профессионал - тот же дилетант, только знающий, где ошибётся.
Генератор db_update.php для phpBB2 с некоторыми удобствами. Многие моды я беру или ищу здесь, здесь, тут
Все консультации только на форуме, приваты и стук в аську по таким вопросам игнорируются!
FAQ-phpBB3 | Ошибки новичков, или как не поссориться с модератором | Правила конференции

наш форум http://forum.aeroion.ru/cat1.html

Вернуться в «Для авторов (phpBB 2.0.x)»