Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Нули перед числом
 
 автор: Ванек2010   (21.08.2010 в 17:46)   письмо автору
 
 

Подскажите как сделать следующую вещь
Вот примеры
Допустим максимально можно 3 символа, но число получилось 24, надо дополнить его нулем, чтоб получилось 024.
Допустим максимально можно 6 символов, но число получилось 614, надо дополнить его нулями, чтоб получилось 000614.

  Ответить  
 
 автор: sim5   (21.08.2010 в 17:54)   письмо автору
 
   для: Ванек2010   (21.08.2010 в 17:46)
 

<?
$n1 
24;
$max1 3;
$n2 614;
$max2 6;
print 
str_pad($n1$max1"0"STR_PAD_LEFT) . ', ' str_pad($n2$max2"0"STR_PAD_LEFT);

  Ответить  
 
 автор: Ванек2010   (21.08.2010 в 18:19)   письмо автору
 
   для: sim5   (21.08.2010 в 17:54)
 

Спс, но сделал на функции уже

<?php
  
function null($index,$strlen) {
  
$index_len strlen($index);
  if(
$index_len $strlen) {
  
$count $strlen $index_len;
  
$null "0";
  for(
$i=0;$i<$count;$i++) {
  
$null{$i} = "0"
  }
  return 
$null;
  } 
  
  
  }
  
$id null($id,2)."$id";
  
$lvl null($lvl,2)."$lvl";

  Ответить  
 
 автор: sim5   (21.08.2010 в 18:29)   письмо автору
 
   для: Ванек2010   (21.08.2010 в 18:19)
 

И зачем такой ужас?
Да, и не называйте функции зарезервированными словами!

  Ответить  
 
 автор: Ванек2010   (21.08.2010 в 18:36)   письмо автору
 
   для: sim5   (21.08.2010 в 18:29)
 

Переделал
<?php
function n($n,$max) {
$ret str_pad($n$max"0"STR_PAD_LEFT);
return 
$ret;
}
echo  
n($id,2).n($lvl,2)."00";

  Ответить  
 
 автор: sim5   (21.08.2010 в 18:41)   письмо автору
 
   для: Ванек2010   (21.08.2010 в 18:36)
 

Фантазии на имена функциям более не хватает? Null все таки нечто, имеющее в РНР значение, зачем вы его используете? Поплатитесь вы когда либо такой фантазией, особенно в JavaScript, если будете именовать функции, объекты так необдуманно.

И пишите сразу:

return str_pad($n, $max, 0, STR_PAD_LEFT);
return $ret; //без этого

  Ответить  
 
 автор: Ванек2010   (21.08.2010 в 18:50)   письмо автору
 
   для: sim5   (21.08.2010 в 18:41)
 

Спасибо))

  Ответить  
 
 автор: ladan   (24.01.2012 в 10:30)   письмо автору
 
   для: sim5   (21.08.2010 в 18:41)
 

почему некорректно эта функция работает с русскими символами?


echo str_pad("строка"10,"$");

выводит туже строку без изменений..

  Ответить  
 
 автор: Lotanaen   (24.01.2012 в 10:38)   письмо автору
 
   для: ladan   (24.01.2012 в 10:30)
 

ну здесь Вы запятую пропустили

  Ответить  
 
 автор: ladan   (24.01.2012 в 10:43)   письмо автору
 
   для: Lotanaen   (24.01.2012 в 10:38)
 

все равно тоже самое :)) echo str_pad("Строчка",10,"$");

  Ответить  
 
 автор: Lotanaen   (24.01.2012 в 10:45)   письмо автору
 
   для: ladan   (24.01.2012 в 10:43)
 

а если знак доллара заэкранировать, то ничего не меняется?

  Ответить  
 
 автор: ladan   (24.01.2012 в 10:56)   письмо автору
 
   для: Lotanaen   (24.01.2012 в 10:45)
 

нет, тоже самое... с латиницей и цифрами нормально работает... сейчас менял документ в формат windows-1251 и кодировка ANSI и корректно все работает.. не ужели все переделывать, все страницы придется :(

  Ответить  
 
 автор: maskaral   (24.01.2012 в 01:10)
 
   для: sim5   (21.08.2010 в 17:54)
 

printf, sprintf отменили?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования