matriks87
(Matriks87)
22 Grudzień 2010 19:05
#1
Witam,
czy mógłby mi ktoś powiedzieć jak dodać obrazki na stronę?
mam folder obrazki i jest w nich powiedzmy 9 jpegów i chce żeby mi się wyświetlały na stronie w galerii czy jest jakaś funkcja która będzie mi wrzucać takie obrazki z folderu czy trzeba je jakoś pojedynczo wrzucać???
no… (x)html?
echo '';[/code]
można to wykonać w pętli pobierając nazwy plików np. z tablicy.
jeśli nie chcesz wypisywać wszystkich nazw możesz użyć scandir() i odfiltrować tylko ciągi zakończone rozszerzeniami plików graficznych.
matriks87
(Matriks87)
22 Grudzień 2010 19:55
#3
jak to działa?
czyli jeżeli mam w folder tak gdzie index.php i ten folder to obrazki
to:
array scandir ( string $obrazki)
i póżniej
echo "$obrazki";
i mi to wyświetli?
$dir = 'folder/folder2'; //ścieżka do katalogu z obrazkami$filenames = scandir($dir);$i=2; $icount($filenames); $i++) echo '.$dir.'/'.$filenames[$i].'" alt="'.$filenames[$i].'"/';
matriks87
(Matriks87)
22 Grudzień 2010 20:35
#5
<?php
$dir = 'obrazki'; //ścieżka do katalogu z obrazkami
$filenames = scandir($dir);
for($i=2; $i
echo '';
?>[/code]
i błąd wychodzi
:o
OOi
(Ooi)
22 Grudzień 2010 21:17
#6
Zmień Krasnala na coś z nowszego.
Funkcja scandir() wymaga w PHP5.
matriks87
(Matriks87)
22 Grudzień 2010 21:50
#7
zainstalowałem XAMPP może mi ktoś powiedzieć gdzie mam teraz wrzucić pliki żeby mi top działało ?
Denude
(Andrzejmn)
22 Grudzień 2010 22:10
#8
ścieżka_do_xampp\xampp\htdocs
matriks87
(Matriks87)
22 Grudzień 2010 22:20
#9
strona główna niby się wyświetla ale żadna z podstron nie chce jednak krasnal chyba lepszy
dobra już się wyświetlają teraz sprawdze to wczytywanie tych obrazków
OOi
(Ooi)
23 Grudzień 2010 10:57
#10
Zakładam, że uruchomiłeś serwer apache w panelu kontrolnym XAMPP i wchodzisz przez localhost/jakiśfolder
EDIT: edytowałeś posta w trakcie mojego pisania
matriks87
(Matriks87)
23 Grudzień 2010 11:28
#11
no dzieła =D>
tylko teraz trzeba by to jakoś sformatować może do jakiejś tabelki bo się wyświetlają jeden pod drugim
– Dodane 23.12.2010 (Cz) 12:55 –
mam w folderze 9 obrazków i chce żeby mi się wyświetlały w tabeli 3x3 próbuję to zrobić na pętli for
<?php
$dir = 'obrazki'; //ścieżka do katalogu z obrazkami
$filenames = scandir($dir);
?>
| |
| |
[/code]
i mi się jakieś głupoty wyświetlają co robię źle?
po drugie czemu jak wpisuje w
[code]
to mi się wielkość tablicy nie zmienia tak samo jak wpiszę w
nic się nie zmienia
OOi
(Ooi)
23 Grudzień 2010 12:13
#12
Przemyśl rozmieszczenie kolumn i wierszy (
) i licznik obrazków
Ma być
img1img2img3
img4img5img6
img7img8img9
A jest jak?
img1
img1
img2
img3img2
img1
img2
img3img3
img1
img2
img3
matriks87
(Matriks87)
23 Grudzień 2010 12:51
#13
zrobiłem to w taki sposób
<?php
$dir = 'obrazki'; //ścieżka do katalogu z obrazkami
$filenames = scandir($dir);
?>
| |
| |
| |
[/code]
i niby jest dobrze stworzyło tablice 3x3 ale jest pusty pierwszy element i ciągle nie mogę zmniejszyć zdjęcia
OOi
(Ooi)
23 Grudzień 2010 13:04
#14
Atrybuty szerokości i wysokości daj do a nie do
zawsze zostanie rozszerzone jeżeli obrazek w nim jest większy.
Ewentualnie zamiast tego zastosuj CSS.
Pierwszy element jest pusty ponieważ jest to katalog. Konkretnie katalog “…” czyli przejście do folderu nadrzędnego.
Upewnij się sprawdzając źródło strony wynikowej w przeglądarce, że
Możesz zastosować wykluczenie zliczania katalogów sprawdzając to przy pomocy funkcji is_dir().
Lub iterować w pętli 2-4, 5-7 i 8-10.
spróbuj:
$dir = 'obrazki';$filenames = scandir($dir);$o = '';for ($i=2; $icount($filenames); $i++){ if ($i % 3 == 2) $o .= ''; $o .= '
.$dir.'/'.$filenames[$i].'" alt="'.$filenames[$i].'"/
'; if ($i % 3 == 1 || $i == count($filenames) - 1) $o .= '';';echo $o; [/code]
matriks87
(Matriks87)
24 Grudzień 2010 13:20
#16
bardzo fajny skrypcik dzięki, mam jeszcze takie pytanie jak wyśrodkować te zdjęcia?
for ($i=2; $i
to count($filenames) to jest ilość plików w folderze?
i mógłbyś mniej więcej opisać zasade działania tego?
[code] if ($i % 3 == 2) $o .= ’
'; $o .= ’
'; if ($i % 3 == 1 || $i == count($filenames) - 1) $o .= ’
';
OOi
(Ooi)
24 Grudzień 2010 14:22
#17
$i % 3 to modulo (reszta z dzielenia)
Jeżeli resztą z dzielenia jest 2 to otwiera
table-row (odpowiednik )
Niezależnie od powyższego dodaje
table-cell (odpowiednik ) z obrazkiem.
Następnie sprawdza czy modulo jest równe 1 lub czy obrazki się skończyły.
Jeżeli tak to zamyka
table-row
Kolega podał rozwiązanie niezależne od ilości obrazków w folderze.
matriks87
(Matriks87)
7 Styczeń 2011 10:58
#19
a zrobić żeby dany obrazek po najechaniu na miniaturkę się trochę powiększył a po kliknięciu otworzył na całej stronie?
i jeżeli będę miał przykładowo 27 obrazków w folderze i chciałbym żeby były po 9 na stronie i pod obrazkami wybór strony 1-3 to muszę to muszę robić trzy strony i takim sposobem wyświetlać na każdej z nich?
i jeszcze pytanie odnosnie
można np. w arkuszu css domyślnie dla tych obrazków ustawić margin:10px; max-width:80px; max-height:80px;
a dla selektora z pseudoklasą :hover dać margin:0; max-width:100px; max-height:100px;
to tylko przykład, specjalnie dodałem marginesy wokół obrazków, żeby miały miejsce i nie spowodowały rozjeżdżania się tego tabelo-podobnego układu
linki do kolejnych stron zapiszesz np. 2 dzięki czemu w pliku adres.php będzie można odczytać tą wartość z $_GET['page] (warto jeszcze upewnić się czy jest to liczba całkowita np. poprzez intval() i ew. czy należy do zakresu stron)
ta liczba może wpływać na wartości atrybutów pętli for, żeby na każdej stronie pojawiły się właściwe obrazki