Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zerofill w PHP
Foxer
post
Post #1





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 17.11.2003

Ostrzeżenie: (0%)
-----


Witam.

W zmiennej mam zapisaną pewną liczbę (np. 123). Jednak chcę aby była wyświetlana z trzema zerami na przedzie (tzn. aby była to liczba 6 cyfrowa): 000123. Jeżeli miałbym liczbę 4 cyfrową (np. 1234) to liczba z przodu wypełniałaby się dwoma zerami itd.

Czy jest na to szybki sposób? Funkcja php? Proszę o pomoc smile.gif.

Ten post edytował Foxer 9.07.2004, 18:02:01


--------------------
Pozdrawiam,
Foxer
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
peterj
post
Post #2





Grupa: Zarejestrowani
Postów: 121
Pomógł: 0
Dołączył: 9.02.2004
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


W zmiennej $liczba masz jakąs liczbe.
  1. <?php
  2. $liczba = &#092;"123\";
  3. $ile = strlen($liczba);
  4. if ($ile == &#092;"1\"){
  5. print(&#092;"00000$liczba\");
  6. }
  7. if ($ile == &#092;"2\"){
  8. print(&#092;"0000$liczba\");
  9. }
  10. if ($ile == &#092;"3\"){
  11. print(&#092;"000$liczba\");
  12. }
  13. if ($ile == &#092;"4\"){
  14. print(&#092;"00$liczba\");
  15. }
  16. if ($ile == &#092;"5\"){
  17. print(&#092;"0$liczba\");
  18. }
  19. if ($ile == &#092;"6\"){
  20. print(&#092;"$liczba\");
  21. }
  22. ?>


Ten post edytował peterj 9.07.2004, 18:45:43


--------------------
Warsztat: Apache 1.3.29 / PHP 4.3.4 / MySQL 3.23.58 / Winsyntax
Go to the top of the page
+Quote Post
FiDO
post
Post #3





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

Ostrzeżenie: (0%)
-----


Dziekuje peterj za skuteczne rozsmieszenie mnie biggrin.gif

  1. <?php
  2. printf(&#092;"%06d\", $liczba);
  3. ?>


--------------------
Brak czasu :/
Go to the top of the page
+Quote Post
peterj
post
Post #4





Grupa: Zarejestrowani
Postów: 121
Pomógł: 0
Dołączył: 9.02.2004
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


hehe nie widziałem, że tak można laugh.gif moje też działa, ale troche malo poręczne winksmiley.jpg


--------------------
Warsztat: Apache 1.3.29 / PHP 4.3.4 / MySQL 3.23.58 / Winsyntax
Go to the top of the page
+Quote Post
Foxer
post
Post #5





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 17.11.2003

Ostrzeżenie: (0%)
-----


Dzięki Panowie, zwłaszcza FiDO, za poręczny sposób smile.gif.
Mam jeszcze jedno pytanie co się tyczy tych "ZER", otóż:

Co jeżeli chciałbym zmienioną (z zerami) liczbę zapisać w zmiennej, nie wyświetlając wyniku tak jak to robi printf. Chciałbym uzyskać coś takiego:
  1. <?php
  2. $liczba = coś(&#092;"%06d\", $liczba);
  3. ?>

Czy jest taka funkcja która spełniałaby to "coś"? Jak tą zmienioną już postać zapisać w zmiennej?

Zaczynam się mieszać blink.gif

Ten post edytował Foxer 9.07.2004, 21:30:54


--------------------
Pozdrawiam,
Foxer
Go to the top of the page
+Quote Post
FiDO
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

Ostrzeżenie: (0%)
-----


Wyslij sie troche i zajrzyj do manuala do opisu funkcji printf. Znajdziesz tam rozwiazanie.


--------------------
Brak czasu :/
Go to the top of the page
+Quote Post
Foxer
post
Post #7





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 17.11.2003

Ostrzeżenie: (0%)
-----


Czytałem manualową definicję printf już wiele razy i tam nie znalazłem rozwiązania. Natomiast, dosyć przypadkowo natrafiłem na funkcję sprintf(), która właśnie NIE wyświetla wyniku, a można go zapisać w zmiennej:
  1. <?php
  2. $a = 123;
  3. echo $a . '<br>';
  4. $a = sprintf(&#092;"%06d\", $a);
  5. echo $a;
  6. ?>


--------------------
Pozdrawiam,
Foxer
Go to the top of the page
+Quote Post
FiDO
post
Post #8





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

Ostrzeżenie: (0%)
-----


W opisie printf byl wlasnie link do sprintf jako funkcji podobnej.. liczylem na to ze dojdziesz do tego smile.gif


--------------------
Brak czasu :/
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 13:28