Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] while - objaśnienie na przykładzie
shpaque
post
Post #1





Grupa: Zarejestrowani
Postów: 651
Pomógł: 3
Dołączył: 31.01.2011
Skąd: Warszawa

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


Witajcie - to może paradoksalnie śmieszne, ale nigdy wcześniej nie korzystałem z pętli while (IMG:style_emoticons/default/smile.gif) a podejrzewam, że tutaj będzie jak znalazł. Chodzi o zapętlenie dopóki nazwa pliku nie będzie "wolna"

obecnie jest tak:
  1. if (file_exists('./db/upload/'.$fileName.'.'.$fileExtension)) {$newFileName = $fileName.'[1].'.strtolower($fileExtension);}
  2. else {$newFileName = $fileName.'.'.strtolower($fileExtension);}


jest ok, tylko petla wykona się jeden raz, to znaczy kiedy dam plik 1.txt, to za drugim razem mi stworzy 1[1].txt, ale jesli jeszcze raz dam 1.txt to ZNÓW mi stworzy 1[1].txt i bedzie tu juz duplikat

wiec jak powinna wygladac while? cos takiego?
  1. while (!file_exists('./db/upload/'.$fileName.'.'.$fileExtension)) {
  2. $newFileName = $fileName.'[1].'.strtolower($fileExtension);
  3. })


?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
shpaque
post
Post #2





Grupa: Zarejestrowani
Postów: 651
Pomógł: 3
Dołączył: 31.01.2011
Skąd: Warszawa

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


Faktycznie niezłe przeoczenie (IMG:style_emoticons/default/smile.gif) Teraz jest bosko i wszystko hula jak powinno - dziękuję bardzo; Zmieniłem jeszcze początkowy count dla while na "0" bo i tak liczy przed sprawdzeniem więc wtedy zaczyna od 1...

Cała klamerka wyglądać powinna właśnie tak:

  1. // W tym kroku sprawdźmy, czy nie należy dodać jakichś plików
  2. if (isset($_FILES['uploads'])) {
  3. $filesToUpload = $_FILES['uploads'];
  4. $countFilesToUpload = count($filesToUpload['name']);
  5. $counter = 0;
  6. for ($i = 0; $i < $countFilesToUpload; $i++) {
  7. $newFileId = newStringId(8);
  8. $fileExtension = explode('.', $filesToUpload['name'][$i]);
  9. $fileExtension = strtolower(end($fileExtension));
  10. $fileName = str_replace('.'.$fileExtension, '', $filesToUpload['name'][$i]);
  11. if (in_array($fileExtension, $allowedExtensions)) {
  12. $newFileName = $fileName.'.'.$fileExtension;
  13. $countWhile = 0;
  14. while (file_exists('./db/upload/'.$newFileName)) {
  15. $countWhile++;
  16. $newFileName = $fileName.'['.$countWhile.'].'.$fileExtension;
  17. }
  18. move_uploaded_file($filesToUpload['tmp_name'][$i], './db/upload/'.$newFileName);
  19. // Dodajmy wpis do bazy danych
  20. $newFile = $loadPageDataBase -> files -> addChild('file', $newFileName);
  21. $newFile -> addAttribute('id', $newFileId);
  22. $newFile -> addAttribute('title', '');
  23.  
  24. $counter++;
  25. }
  26. }
  27. }
Go to the top of the page
+Quote Post

Posty w temacie


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: 11.10.2025 - 15:08