Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]substr() odliczanie znaków od końca
lDoran
post 2.09.2010, 16:52:59
Post #1





Grupa: Zarejestrowani
Postów: 172
Pomógł: 13
Dołączył: 15.11.2009

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


  1. public static function getMinImages($catalogName)
  2. {
  3. $arFiles = FileManager::getFiles($catalogName);
  4. $counter = count($arFiles);
  5.  
  6. for($i = 0; $i < $counter; $i++)
  7. {
  8. if(substr($arFiles[$i], -12) == '-resized.jpg')
  9. $arNewFiles[$i] = $arFiles[$i];
  10. }
  11.  
  12. return $arNewFiles;
  13. }

wynik w przeglądarce:
Cytat
bg-wood-resized.jpg

blackwood-resized.jpg

onepoleTile-resized.jpg
pbd-body-resized.jpg

nie rozumiem dlaczego ale funkcja substr() nie czyta zbyt długich łańcuchów np. site-background-resized.jpg
Go to the top of the page
+Quote Post
krispak
post 2.09.2010, 18:12:19
Post #2





Grupa: Zarejestrowani
Postów: 250
Pomógł: 55
Dołączył: 27.08.2008

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


  1. echo substr("site-background-resized.jpg", -12);

wynik
  1. -resized.jpg

jakos dziala i odczytuje..

Ten post edytował krispak 2.09.2010, 18:13:03


--------------------
* * * * * * * * * * * * * * * * * * * * * * * * *
PHP, Laravel, Docker, Docker Compose, Laradock, Redis, JS, React, Vue, CSS, SCSS, Gulp, GIT ... itd..
Go to the top of the page
+Quote Post
lDoran
post 2.09.2010, 18:14:32
Post #3





Grupa: Zarejestrowani
Postów: 172
Pomógł: 13
Dołączył: 15.11.2009

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


Nie rozumiem mam w tablicy arFiles zapisane i jakoś nie zapisuje zbyt dług ciągów do arNewFiles jeszcze pomęczę to
Go to the top of the page
+Quote Post
krispak
post 2.09.2010, 18:23:02
Post #4





Grupa: Zarejestrowani
Postów: 250
Pomógł: 55
Dołączył: 27.08.2008

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


Tylko moim zdaniem dobrze to dziala, tylko powiedz co tak naprawde chcesz osiagnac i co ma byc zapisane w tablicy..

Ten post edytował krispak 2.09.2010, 18:23:33


--------------------
* * * * * * * * * * * * * * * * * * * * * * * * *
PHP, Laravel, Docker, Docker Compose, Laradock, Redis, JS, React, Vue, CSS, SCSS, Gulp, GIT ... itd..
Go to the top of the page
+Quote Post
lDoran
post 2.09.2010, 18:30:47
Post #5





Grupa: Zarejestrowani
Postów: 172
Pomógł: 13
Dołączył: 15.11.2009

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


metoda klasy FileManager::getFiles($catalogName) zwraca tablicę wszystkich zdjęć znajdujących się w katalogu:
Cytat
bg-wood-resized.jpg
bg-wood.jpg
blackwood-resized.jpg
blackwood.jpg
onepoleTile-resized.jpg
pbd-body-resized.jpg
pbd-body.jpg
site-background-resized.jpg
site-background.jpg
telePhone_poleTile.jpg
wood-resized.jpg
wood.jpg


natomiast metoda klasy Gallery z tej tablicy zapisuje do swojej tylko miniaturki zdjęć(czyli pliki z dopiskiem -resized.jpg)
  1. public static function getMinImages($catalogName)
  2. {
  3. $arFiles = FileManager::getFiles($catalogName);
  4. $counter = count($arFiles);
  5.  
  6. for($i = 0; $i < $counter; $i++)
  7. {
  8. if(substr($arFiles[$i], -12) == '-resized.jpg')
  9. echo $arNewFiles[$i] = $arFiles[$i] . '<br>';
  10. }
  11.  
  12. echo '<hr>';
  13.  
  14. return $arNewFiles;
  15. }

po czym zwraca nową tablicę $arNewFile
  1. //kod wyświetlający tablicę miniatur
  2. $arFiles = Gallery::getMinImages('web/gallery/wesela');
  3.  
  4. $counter = count($arFiles);
  5.  
  6. for($i = 0; $i < $counter; $i++)
  7. {
  8. echo $arFiles[$i] . '<br>';
  9. }

zwrócona tablica $arNewFiles
Cytat
bg-wood-resized.jpg


blackwood-resized.jpg


onepoleTile-resized.jpg

pbd-body-resized.jpg
Go to the top of the page
+Quote Post
krispak
post 2.09.2010, 18:57:18
Post #6





Grupa: Zarejestrowani
Postów: 250
Pomógł: 55
Dołączył: 27.08.2008

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


Tak wyglada u Ciebie tablica z miniaturkami
  1. (
  2. [0] => bg-wood-resized.jpg
  3. [2] => blackwood-resized.jpg
  4. [4] => onepoleTile-resized.jpg
  5. [5] => pbd-body-resized.jpg
  6. [7] => site-background-resized.jpg
  7. [10] => wood-resized.jpg
  8. )

Zwroc uwage na jej klucze, gdzie ty wypisujesz lecac w petli po kolei zliczajac tablice $counter = 6 czyli 6 razy sie zapetli, pierwsze 4 sie zalapia smile.gif
Zamien kod wyświetlający tablicę miniatur na
  1. $arFiles = Gallery::getMinImages('web/gallery/wesela');
  2. foreach($arFiles as $value)
  3. {
  4. echo $value . '<br>';
  5. }


Ten post edytował krispak 2.09.2010, 18:58:30


--------------------
* * * * * * * * * * * * * * * * * * * * * * * * *
PHP, Laravel, Docker, Docker Compose, Laradock, Redis, JS, React, Vue, CSS, SCSS, Gulp, GIT ... itd..
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: 12.06.2025 - 13:53