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----


  1. if (isset($_FILES['uploads'])) {
  2. $filesToUpload = $_FILES['uploads'];
  3. $countFilesToUpload = count($filesToUpload['name']);
  4. $counter = 0;
  5. for ($i = 0; $i < $countFilesToUpload; $i++) {
  6. $newFileId = newStringId(8);
  7. $fileExtension = explode('.', $filesToUpload['name'][$i]);
  8. $fileExtension = strtolower(end($fileExtension));
  9. $fileName = str_replace('.'.$fileExtension, '', $filesToUpload['name'][$i]);
  10. if (in_array($fileExtension, $allowedExtensions)) {
  11. $newFileName = $fileName.'.'.$fileExtension;
  12. $countWhile = 1;
  13. while (file_exists($newFileName)) {
  14. $countWhile++;
  15. $newFileName = $fileName.'['.$countWhile.'].'.$fileExtension;
  16. }
  17. move_uploaded_file($filesToUpload['tmp_name'][$i], './db/upload/'.$newFileName);
  18. // Dodajmy wpis do bazy danych
  19. $newFile = $loadPageDataBase -> files -> addChild('file', $newFileName);
  20. $newFile -> addAttribute('id', $newFileId);
  21. $newFile -> addAttribute('title', '');
  22.  
  23. $counter++;
  24. }
  25. }
  26. }
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: 7.10.2025 - 13:18