Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Funkcja copy a wielkosc liter?
kukix
post 27.07.2018, 13:40:21
Post #1





Grupa: Zarejestrowani
Postów: 600
Pomógł: 2
Dołączył: 1.09.2002
Skąd: Wrocław

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


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?

Ten post edytował kukix 27.07.2018, 14:17:09
Go to the top of the page
+Quote Post
404
post 27.07.2018, 20:55:38
Post #2





Grupa: Zarejestrowani
Postów: 226
Pomógł: 25
Dołączył: 22.05.2011

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


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.
Go to the top of the page
+Quote Post
KrisKros123
post 28.07.2018, 22:02:33
Post #3





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 20.03.2018

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


  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.

Ten post edytował KrisKros123 28.07.2018, 22:16:46
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: 19.04.2024 - 11:10