Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] prosty generator nr pesel
--siwym--
post 17.11.2013, 11:21:56
Post #1





Goście







Witam.
Mam problem z prostym generatorem losowych nr pesel. Potrzebuje zapisać w pliku txt 10000 losowych nr pesel.
Napisałem taki skrypcik:
  1. <?
  2. $a = fopen("pesel.txt", "w+");
  3. for($i=0; $i<=10000; $i++){
  4. $pesel = rand(00, 99).rand(01, 12).rand(00, 30).rand(00000, 99999);
  5. $a = fopen("pesel.txt", "a");
  6. fputs($a, $pesel." \n");
  7. fclose($a);
  8. }
  9.  
  10. ?>

No generalnie działa. Tylko jest problem w tym ze nr pesel zawiera 11 liczb. Ten skrypt generuje numery ale jeżeli liczby generowane zaczynają się od zer skrypt pomija je zapisując. I w efekcie mam liczby nawet i 8 cyfrowe. Czy jest jakas możliwość zrobienia bez instrukcji warunkowych ?
Nie chce się skupiać na zasadzie nadawanie nr pesel. Wiem skrypt ma błędy wink.gif ale chodzi mi te 11 cyfr.
Zamiast
08010900897
Otrzymuje
819897
Proszę o pomoc.
Go to the top of the page
+Quote Post
nospor
post 17.11.2013, 12:28:26
Post #2





Grupa: Moderatorzy
Postów: 36 556
Pomógł: 6314
Dołączył: 27.12.2004




A skad ci przyszlo do glowy, ze rand(00000, 99999); generuje liczby 5 cyfrowe? On g eneruje liczby od 0 do 99999m wiec jak sam widzisz liczby są od 1cyfry do 5 cyfr.
Jak chcesz miec zawsze liczby 5-cio cyfrowe, to musisz uzyc np.
http://www.php.net/manual/en/function.str-pad.php
i dopelniac zerami brakujace miejsca. Przyklad masz w manualu


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
tomxx
post 17.11.2013, 16:39:04
Post #3





Grupa: Zarejestrowani
Postów: 172
Pomógł: 27
Dołączył: 5.10.2013

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


Użyj rzutowania typów. Cały kod powinien wyglądać tak:
  1. <?php
  2. function los(){$x=[0,1,2,3,4,5,6,7,8,9];return $x[array_rand($x)];}
  3.  
  4. function pesel(){
  5. $pesel = null;
  6. for($i = 1; $i <= 11; $i++){
  7. $pesel = (string) $pesel;
  8. $pesel .=(string) los();
  9. } return $pesel;
  10. }
  11.  
  12. $fp = fopen("pesel.txt", "w+"); fclose($fp);
  13.  
  14. $fp = fopen("pesel.txt", "a+");
  15. for($i = 1; $i <= 10000; $i++) {
  16. fwrite($fp, pesel().'
  17. ');
  18. }
  19. fclose($fp);
  20.  
  21. ?>
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 Wersja Lo-Fi Aktualny czas: 26.04.2025 - 01:00