Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Pomysł na galerię i problem
Forum PHP.pl > Forum > Przedszkole
bobek1984
Witam. Od razu mówię, że z PHP zaczynam. Szukałem na tym forum ale nie znalazłem tego zbytnio co chciałem. (może źle szukałem).
A teraz do rzeczy.
Chodzi mi o pomoc w napisaniu skryptu galerii. Mój pomysł wygląda tak:
Mamy katalog "galeria". W tym katalogu są katalogi z fotkami oznaczone jako "1", "2", "3", itp; oraz pliki tekstowe "1.txt", "2.txt", "3.txt" (w tych plikach jest zapisana nazwa galerii) oraz pliki graficzne "1.gif", "2.gif", "3.gif".
Opis działania wygląda tak, że gdy wejdziemy w link, skrypt czyta ile jest folderów ze zdjęciami, wstawia odpowiedni obraz i tekst opisujący galerię. (nie wiem czy to zrozumiałe - sorry).

I teraz mam 1 problem (jak narazie). Jak przeczytać katalog "galeria" i wyświetlić nazwy tylko katalogów; żeby nie wyświetlało nazw plików *.txt oraz obrazków *.gif.

Tzn. przeczytać wiem jak, ale nie wiem jak zrobić żeby wyświetliło tylko nazwy katalogów, bez reszty plików

Dzięki z góry
piotrooo89
moja pierwsza sugestia - porzuć pliki przejdź na bazę danych. zajedziesz się...
jareeny
No jak chce pliki to niech ma pliki. Wrzuć readdir() w pętle i potem instrukcją warunkową sprawdzaj czy to katalog za pomocą is_dir()
bobek1984
Jeżeli chodzi o bazy to chętnie tylko, że ja tego nie czaje ni w ząb ;/ a ztym co napisał jareeny to właśnie czytam o co chodzi ;D:D

Zrobiłem coś takiego:
<?php
if ($galerie = opendir('galeria')) {
while (false !== ($file = readdir($galerie))) {
if (is_dir($file)) {
echo "$file\n<br>";
}
}
closedir($galerie);
}
?>

ale pokazało mi tylko katalogi: "." oraz ".."
piotrooo89
Cytat(bobek1984 @ 26.01.2009, 22:00:15 ) *
Jeżeli chodzi o bazy to chętnie tylko, że ja tego nie czaje ni w ząb ;/ a ztym co napisał jareeny to właśnie czytam o co chodzi ;D:D


jeśli chcesz się uczyć jeździć na rowerze lub autem co wybierasz? i tym pojedziesz i tym tylko na rowerze bardziej się zmęczysz natomiast autem musisz się więcej uczyć ale później masz komfort.

tak samo jest z baza opartą na plikach (nasz przykładowy rower) i bazą danych np w MySQL (nasze auto). jeśli zaczynasz od podstaw nie lepiej od razu uczyć się czegoś lepszego?
bobek1984
Próbowałem, ale to jest dla mnie tak sądzę zbyt skomplikowane. Poprostu ja tego nie pojmuję. Albo nie wiem od czego zacząć poprostu ;/;/

Jeżeli chodzi o tą galerię to jak bym chciał ją zrobić w MYSQL możesz mi coś polecić żebym miał chociaż jakiś punkt odniesienia :/
Lejto
znajdz sobie jakiś kurs w necie jak nie masz książki, proste zapytania, oswój sie z phpmyadminem, krok po kroku
bobek1984
phpmyadmina znam, jeżeli chodzi o kursy to są ale raczej dla ludzi którzy już trochę w tym siedzą ;/

Wiecie co, ja chyba jednak wole uczyć się jeździć na rowerze narazie. Potem zrobie prawko i będę śmigał autem:P:P:P.

To nie jest duża galeria więc zostanę jednak przy samym php.

Tylko powiedzcie mi jak ja mam przeczytać ten katalog, żeby mi wyświetlało tylko katalogi w nim.
Bo ja już nie mogę normalnie ;/;/

Zrobiłem coś takiego:

<?php
foreach(glob("galeria/*" , GLOB_ONLYDIR) as $galerie)
{
$gal = substr ($galerie,8);
echo $gal;
echo "\n\n\n\n\n\n\n";
}
?>

Działa tak jak chciałem. Ale teraz pojawia się problem. Jak to zrobić żeby w jednym wierszu było do 5 numerków.
Tzn jak w katalogu "galeria" mam katalogi od "1" do "10", to żeby po odpaleniu skryptu miałbym coś takiego:
1 2 3 4 5
6 7 8 9 10
A nie w jednym rzędzie?questionmark.gif?

I co wie ktoś jak to zrobić questionmark.gif

Panowie naprawdę proszę o pomoc. Szukam tego 2 dzień już, znalazłem podobne (chyba) ale to nie to ;/
erix
Cytat
Tylko powiedzcie mi jak ja mam przeczytać ten katalog, żeby mi wyświetlało tylko katalogi w nim.
Bo ja już nie mogę normalnie ;/;/

Sprawdź ścieżkę uzyskaną w pętli przez is_dir" title="Zobacz w manualu PHP" target="_manual.

Cytat
I co wie ktoś jak to zrobić

http://forum.php.pl/index.php?showtopic=112083
bobek1984
Nie czaję tego pseudokodu ;/;/ sad.gif

Tzn już troche kumam, ale jak zapisać tą resztę z dzielenia równą 0 ;/ tego nie moge pojąć

Wiem że coś takiego:

$enter = $gal % 5;

podaje mi resztę z dzielenia przez 5. ok wszystko ładnie i pięknie, ale jak to zastosować.

Chodzi mi o to, jak to połączyć z w/w funkcją foreach, żeby przy $enter = 0 dawało mi <br>

Proszę o pomoc
erix
Nie możesz dać zwykłego if" title="Zobacz w manualu PHP" target="_manual z wartością reszty jako warunkiem?
bobek1984
Już sobie poradziłem. Galeria śmiga a wygląda tak:
  1. <?
  2. if ($_GET['gal']==false)
  3. {
  4. echo "<table width='100%' border='0' cellspacing='0' cellpadding='0' align='center'><tr>";
  5. $lista = array();
  6. foreach(glob("galeria/*", GLOB_ONLYDIR) as $folder)
  7. {
  8.    $galeria = array_pop(explode('/', $folder));
  9.    $lista[] = $galeria;
  10. }
  11. $x = 4;
  12. $i = 0;
  13. foreach ($lista as $galeria)
  14. {
  15.    print '<td align="center"><a href="index.php?id=galeria&gal='.$galeria.'" ><img src="galeria/'.$galeria.'.gif" border="0"></a><br>';
  16. $fp = fopen('galeria/'.$galeria.'.txt', 'r');  
  17. $dane = fread($fp, filesize('galeria/'.$galeria.'.txt'));
  18. echo ''.$dane.'</td>';
  19.    if ((++$i) == $x)
  20.    {
  21.        $i = 0;
  22.        print '</tr><tr>';
  23.    }
  24. }
  25. echo '</table>';
  26. }
  27. else
  28. {
  29. echo "<table width='100%' border='0' cellspacing='0' cellpadding='0' align='center'><tr>";
  30. $lista = array();
  31.  
  32. foreach(glob('galeria/'.$_GET['gal'].'/*') as $folder)
  33. {
  34.    $galeria = array_pop(explode('/', $folder));
  35.    $lista[] = $galeria;
  36. }
  37. $x = 4;
  38. $i = 0;
  39.  
  40. foreach ($lista as $galeria)
  41. {
  42.  
  43.    print '<td align="center"><img src="galeria/'.$_GET['gal'].'/'.$galeria.'"></td>';
  44.  
  45.    if ((++$i) == $x)
  46.    {
  47.        $i = 0;
  48.        print '</tr><tr><td>&nbsp;</td></tr><tr>';
  49.    }
  50. }
  51. echo '</table>';
  52. }
  53. ?>


Krytyczne uwagi mile widziane.

Jedyny minus to jest taki, że te pliki *.gif i *.txt muszą być bo inaczej wywala błąd. Wywala błąd także w przypadku, gdy plik *.txt jest pusty.

Ale śmiga biggrin.gif
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-2025 Invision Power Services, Inc.