Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Funkcja copy a wielkosc liter?
Forum PHP.pl > Forum > PHP
kukix
Witam.


Potrzebuje skopiować plik z określonej lokalizacji o określonej nazwie.
Problem w tym, że na serwer powgrywali częsć zdjęć z wielkiej litery część z małej.

  1. $sciezka_zrodlo = 'pliki_temp/NAZWA_ZDJECIA.jpg';
  2. $sciezkja_docelowa = 'pliki/nowa_nazwa.jpg';
  3.  
  4.  
  5. if (!@copy($sciezka_zrodlo, $sciezka_docelowa)) {
  6. print('<LI>Brak zdjęcia pod adresem <b>' . $sciezka_zrodlo . '</b> .</LI>');
  7.  
  8. return false;
  9. } else {
  10.  
  11. return true;
  12. }


Problemem jest to, że $sciezka_zrodlo jest raz z małej raz z dużej podana. Tak samo pliki na serwerze są raz małymi raz dużymi zapisane.

Da się to jakoś sprawnie ujednolicić? Czy po zostaje strotolower() i wywolanie dwukrotne funkcji copy?
404
Nie wiem, czy w tym przypadku jest sens kombinować. Nie możesz po prostu sprawdzać, czy plik istnieje przez file_exists? Jeżeli nie istnieje to robisz mb_strtolower na ścieżce/nazwie i ponownie sprawdzasz, czy istnieje. Jeżeli tak to kopiujesz.
KrisKros123
  1. $sciezka_zrodlo = 'pliki_temp/NAZWA_ZDJECIA.jpg';
  2. $sciezkja_docelowa = 'pliki/nowa_nazwa.jpg';
  3.  
  4. if(file_exists($sciezka_zrodlo)){
  5. if (!@copy($sciezka_zrodlo, $sciezka_docelowa)) {
  6. print('<LI>Brak zdjęcia pod adresem <b>' . $sciezka_zrodlo . '</b> .</LI>');
  7.  
  8. }
  9. else {
  10.  
  11. return true;
  12. }
  13. }
  14. else{
  15.  
  16. $sciezka_zrodlo = mb_strtolower($sciezka_zrodlo, 'UTF-8');
  17.  
  18. if(file_exists($sciezka_zrodlo)){
  19. if (!@copy($sciezka_zrodlo, $sciezka_docelowa)) {
  20. print('<LI>Brak zdjęcia pod adresem <b>' . $sciezka_zrodlo . '</b> .</LI>');
  21.  
  22. }
  23. else {
  24.  
  25. return true;
  26. }
  27. }
  28. }


Tak na szybko przeedytowalem kod. Pewnie da się to w inny sposób. smile.gif
Co i tak według mnie jest bez sensu, bo niech ktoś se zapisze zdjęcie o tak: ZdJęCiE.png
To za chiny tego nie skopiujesz.
Ja bym najpierw pobrał nazwy wszystkich plików z rozszerzeniem images i zapisał linia pod linią w pliku np. *txt. Potem pętlą linia po lini pobierał nazwę i kopiował to zdjęcie, na końcu usunął plik txt. Albo bez pliku, od razu nazwa zdjęcia pobrana i skopiowana.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.