Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z file_exists
dresik
post 16.01.2008, 19:18:46
Post #1





Grupa: Zarejestrowani
Postów: 57
Pomógł: 0
Dołączył: 12.06.2007
Skąd: Gorlice

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


Witam,
napisałem skrypt który wczytuje pliki z katalogu i potem je wyswietla w tablic np 5 kolumnowej.
W jednej pętli funkcja ma sprawdzać czy dany plik istnieje jeżeli nie to nie nie wyswietla odpowiedniej tresci.

Wszystko pliki ładnie wyswietla no ale cóż z tego jak ten skrypt działa tak jakby nie było w niej funkcji file_exist

  1. <?php
  2.  
  3. $kat = opendir("../$foto$gkatalog");
  4. while (false !== ($plik = readdir($kat))) {
  5. if ($plik<>"." and $plik<>".." and $plik<>"index.php" ) $lista[]=$plik;
  6. }
  7. closedir($kat);
  8. if (count($lista)>0) {
  9. sort($lista);
  10. }
  11. $path="../$foto$gkatalog";
  12.  
  13. for ($i=0;$i<count($lista);$i++){
  14. for ($j=0; $j<$gkolumny; $j++){
  15. $filename = "$path$lista[$i]";
  16. if (file_exists($filename)){
  17. echo("<div class=\"photo\"><a href=\"$path$lista[$i]\" rel=\"lightbox[galeria1]\"><img src=\"$path$mini$lista[$i]\" class=\"img\" alt=\"\" border=\"0\" ></a>
  18. <font style=\"text-align: left; \">$lista[$i]</font> <a href=\"../skrypty/delfile.php?id=$path$lista[$i]\" onclick=\"return usunupl();\">usuń</a></div>");
  19. print "r\n";
  20. $i++;
  21. }
  22. }
  23. $i--;
  24. print '<br />';
  25. }
  26.  
  27. ?>


poniżej na zdjęciu jest zrobiony screen wyswietlanej pętli. Jeśli nie zrozumiale to napisałem, to powiem tak że nieche aby sie wyświetlały te ostatnie trzy puste okienka w których juz niema zdjęć.

Jeśli ktoś wie w czym jest problem to prosze o pomoc. Z góry dziękuje i pozdrawiam

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
pp-layouts
post 16.01.2008, 19:43:18
Post #2





Grupa: Zarejestrowani
Postów: 53
Pomógł: 1
Dołączył: 28.09.2007
Skąd: Gdynia

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


dziwne to, na pierwszy rzut oka nie widzę błędu, ale spróbuj zastąpić "$path$lista[$i]" we wszystkich stringach czymś takim "$path{$lista[$i]}".

z tego co wiem pominięcie nawiasów klamrowych przy umieszczeniu elementu tablicy w znakach "" jest błędem składni i w najlepszym razie da jakiś error, a w najgorszym nie będzie działać...

pomogło?
Go to the top of the page
+Quote Post
dresik
post 16.01.2008, 20:30:08
Post #3





Grupa: Zarejestrowani
Postów: 57
Pomógł: 0
Dołączył: 12.06.2007
Skąd: Gorlice

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


niestety nie pomogło ;/
Go to the top of the page
+Quote Post
nevt
post 16.01.2008, 21:07:17
Post #4





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

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


na starcie - sam budujesz tablicę $lista - na podstawie zawartości plików w pewnym katalogu... więc prosty wniosek że WSZYSTKIE pliki w tej tablicy istnieją...
dalej - sprawdzasz warunek file_exists() w pętli po wszystkich elementach $lista - wniosek - warunek ZAWSZE będzie spełniony, więc nie ma sensu go stosować... (no chyba że ręcznie kasujesz te pliki w trakcie wykonywania skryptu...)
podobnie bez sensu jest wstawianie w tej pętli dwa razy $i++ i raz $i-- (spokojnie wystarczy raz $i++)...
więc gdzie leży twój problem questionmark.gif

otóż budujesz listę plików z jednego katalogu... "$patch$lista..." ale miniaturki zdjęć wyświetlasz z zupełnie innego katalogu... "$path$mini$lista..."

najwyraźniej w obu katalogach są różne pliki (dokładniej różne listy plików)

najciekawsza jest jednak ta linijka: for ($j=0; $j<$gkolumny; $j++)

nie wiem czego oczekujesz, ale na pewno nie odpowiada ona za wyświetlenie fotek w kilku kolumnach, jest zupełnie zbędna, a to że masz dobry rezultat na ekranie to przypadek - najwyraźniej $gkolumny=1

porada - odczytaj $lista na podstawie zawartości katalogu miniaturek, wywal tą zbędna pętlę, wywal niepotrzebny już warunek i będzie cacy smile.gif

powodzenia.

Ten post edytował nevt 16.01.2008, 21:08:06


--------------------

-
Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... -
Go to the top of the page
+Quote Post
dresik
post 16.01.2008, 21:24:37
Post #5





Grupa: Zarejestrowani
Postów: 57
Pomógł: 0
Dołączył: 12.06.2007
Skąd: Gorlice

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


OK wielkie dzięki teraz smiga wszystko łądnie winksmiley.jpg.

Mam jeszcze takie pytanie bo niewiem jaką funkcje albo cos użyć do tego.

Chce aby miniaturka nie była rozciągana do brzegów tabeli tylko aby była wyświetlana w oryginalnym rozmiarze ale żeby wyświetlało ją w tabeli o danym rozmiarze. heh chyba znowu namieszałem, ale moze obrazek poniżej przedstawi o co mi chodzi.

Po lewej stronie wyświetla obrazek dopasowany do brzegów a po prawej stronie zrobiłem tak jakbym chcial zeby wyświetlało.

Jak ktos wie jak to zrobić to prosiłbym o pomoc

Go to the top of the page
+Quote Post
nevt
post 16.01.2008, 21:46:02
Post #6





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

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


zamiast
  1. <image src="katalog/plik.jpg" width="200px" height="100px" />

stosuj
  1. <div style="background:transparent url('katalog/plik.jpg') no-repeat; width:200px; height:100px"></div>

powodzenia.


--------------------

-
Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... -
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.07.2025 - 20:57