Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] dodawanie znaków jeśli zmienna za krótka
@rtur
post
Post #1





Grupa: Zarejestrowani
Postów: 254
Pomógł: 3
Dołączył: 23.02.2006

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


Mam taki kod:
  1. $start = 1;
  2. $stop = 150;
  3. if ($stop > $start && $stop - $start < 200)
  4. {$file = floor($start/200)*200 + 1;}
  5. $zmienna = $file.'.txt';


to mi tworzy zmienną '1.txt'

a co zrobić żeby zmienna $file miała zawsze 4 znaki, a jak ma mniej to niech dodaje tyle zer na początku aby zmienna $file miała długość 4 znaków?

wiem jak policzyć długość zmiennej

  1. if(strlen($file)<4){}


tylko nie wiem co dalej wpisać...

Ten post edytował @rtur 25.08.2012, 17:13:54
Go to the top of the page
+Quote Post
cv65
post
Post #2





Grupa: Zarejestrowani
Postów: 94
Pomógł: 9
Dołączył: 12.04.2009

Ostrzeżenie: (20%)
X----


  1. $i = 0;
  2. $chars = strlen($file);
  3. $out = '';
  4.  
  5. for( $x = 1; $x <= $chars; $x++ )
  6. {
  7. $i++;
  8. if ( $i != 4 )
  9. {
  10. $out .= str_repeat("0", $i);
  11. }
  12. }


a dalej
  1. $zmienna = $out.$file.'.txt';


Powinno działać, pisane z głowy (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
PanGuzol
post
Post #3





Grupa: Zarejestrowani
Postów: 353
Pomógł: 50
Dołączył: 28.07.2005
Skąd: Łaziska Górne

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


Po if daj,
  1. $file = sprintf("%04d", $file);
Go to the top of the page
+Quote Post
cv65
post
Post #4





Grupa: Zarejestrowani
Postów: 94
Pomógł: 9
Dołączył: 12.04.2009

Ostrzeżenie: (20%)
X----


Jeszcze wpadłem teraz na inne rozwiązanie bez użycia pętli:

  1. $chars = strlen($file);
  2. if ( $chars < 4 )
  3. {
  4. $count = (4 - $chars);
  5. $out = str_repeat("0", $count);
  6. }
  7. $zmienna = $out.$file.'.txt';

Go to the top of the page
+Quote Post
irmidjusz
post
Post #5





Grupa: Zarejestrowani
Postów: 279
Pomógł: 60
Dołączył: 25.02.2012

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


jeszcze jest str_pad:
  1. $file = str_pad($file, 4, '0', STR_PAD_LEFT);
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 18:07