Jak pobrać obrazy z folderu i wyświetlić je na stronie, czy mogę zmienić rozmiar w samym php lub muszę zmienić jego rozmiar i przesłać go osobno, aby wyświetlić go jako miniatury?Jak uzyskać obrazki z folderu jeden po drugim i wyświetlić na stronie przy użyciu PHP
Odpowiedz
Oto podstawowa struktura przejeżdżające katalog i robić coś z plików graficznych (podany 'images'
jest katalogiem w tym samym katalogu skryptu)
$image_types = array(
'gif' => 'image/gif',
'png' => 'image/png',
'jpg' => 'image/jpeg',
);
foreach (scandir('images') as $entry) {
if (!is_dir($entry)) {
if (in_array(mime_content_type('images/'. $entry), $image_types)) {
// do something with image
}
}
}
Stamtąd można wysyłać obrazy bezpośrednio do przeglądarka, generuj znaczniki strony HTML lub twórz miniatury z GD functions i przechowuj je do wyświetlenia.
Zapraszamy do obejrzenia:
do zmiany rozmiaru zdjęć bezpośrednio z PHP:
Myślę, że to może ci pomóc!
<?
$string =array();
$filePath='directorypath/';
$dir = opendir($filePath);
while ($file = readdir($dir)) {
if (eregi("\.png",$file) || eregi("\.jpg",$file) || eregi("\.gif",$file)) {
$string[] = $file;
}
}
while (sizeof($string) != 0){
$img = array_pop($string);
echo "<img src='$filePath$img' width='100px'/>";
}
?>
eregi
jest przestarzała teraz więc można użyć preg_match
zamiast
<?php
$string =array();
$filePath='directorypath/';
$dir = opendir($filePath);
while ($file = readdir($dir)) {
if (preg_match("/.png/",$file) || preg_match("/.jpg/",$file) || preg_match("/.gif/",$file)) {
$string[] = $file;
}
}
while (sizeof($string) != 0){
$img = array_pop($string);
echo "<img src='$filePath$img' >";
}
?>
Oto jedna wkładka na podstawie another answer z podobnym pytaniem:
// this will get you full path to images file.
$data = glob("path/to/images/*.{jpg,gif,png,bmp}", GLOB_BRACE);
// this will get you only the filenames
$data= array_map('basename', $data);
Początkowo chciałem użyć @Imran solution, ale mime_content_type
nie był dostępny, a serwer (na którym mam zerową kontrolę) używa starych wersji Apache i PHP .
Więc zmieniłem go trochę do pracy z rozszerzeniem pliku, a ja go tutaj podaję.
$imgDir = "images_dir";
// make sure it's a directory
if (file_exists($imgDir)) {
// select the extensions you want to take into account
$image_ext = array(
'gif',
'png',
'jpg',
'jpeg'
);
foreach (scandir($imgDir) as $entry) {
if (! is_dir($entry)) { // no need to weed out '.' and '..'
if (in_array(
strtolower(pathinfo($entry, PATHINFO_EXTENSION)),
$image_ext)) {
// do something with the image file.
}
}
}
}
Kod jest testowany i działa.
- 1. Jak ładować plik php jeden po drugim?
- 2. Tworzenie grafiki SVG przy użyciu skryptu po stronie serwera (PHP)
- 3. Prześlij formularze, jeden po drugim z jQuery?
- 4. Iterowanie na dwóch listach jeden po drugim
- 5. Animowanie Divów Jeden po drugim z Jquery
- 6. Jak wysyłać wiele akcji jeden po drugim
- 7. Zniknąć w każdym elemencie - jeden po drugim
- 8. Paginacja po stronie serwera przy użyciu datatables
- 9. jQuery: Wywoływanie zdarzeń .click(), jeden po drugim
- 10. Jak pokazać każdy element div, jeden po drugim na jquery?
- 11. Jak wyświetlić odpowiedź łańcuchową z db jako jeden po drugim w systemie Android?
- 12. Usuwanie elementów tablicy dynamicznej jeden po drugim
- 13. jak utworzyć stronę po stronie serwera przy użyciu zasobów angularjs $?
- 14. Jak uzyskać wartość RGB obrazu na stronie przy użyciu javascript?
- 15. użyciem pętli linii zapisu jeden po drugim w pliku przy użyciu Java
- 16. ListView z niestandardowym adapterem, dodając elementy jeden po drugim
- 17. Jak dodawać części do wykresu jeden po drugim w błyszczącym
- 18. Ukryj elementy menu jeden po drugim na zmianę rozmiaru okna
- 19. Czy można wyświetlić plik RTF na stronie internetowej przy użyciu PHP?
- 20. Problem z wydajnością hibernacji, jeden po drugim lub masa?
- 21. Czy klient może wyświetlić kod źródłowy PHP po stronie serwera?
- 22. Jak mogę utworzyć pustą tablicę w obiekcie C i przypisywać do niej wartość jeden po drugim?
- 23. PHP: Jak wyświetlić zawartość pliku tekstowego na mojej stronie?
- 24. Wyświetlaj elementy tablicy, jeden po drugim, jednym kliknięciem przycisku
- 25. Jak wyświetlać tekst na UILabel jeden po drugim po każdym kliknięciu przycisku?
- 26. jak wyświetlić okno alertu po pomyślnym wstawieniu przy użyciu C#
- 27. HTML5 stwardnienie upload plików: przesłać jeden po drugim przez AJAX
- 28. Dwa widoki, jeden pod drugim w pionie i obok siebie w poziomie przy użyciu ograniczeń układu
- 29. Jak wyświetlić ProgressDialog przy użyciu fragmentu
- 30. Wdrażanie MS - wdrażanie folderu na stronie internetowej
Należy zauważyć, że to rozwiązanie używa przestarzałej funkcji 'mime_content_type', która wymaga modułów php mime_magic. Także, popraw mnie jeśli się mylę, ale pętla 'for' nie wydaje się być poprawna Php i myślę, że powinna być' foreach (scandir ('images') jako $ entry) '. –
@emileb Poprawiono składnię pętli. – Imran