ugrás a tartalomhoz

Egy adott könyvtár képeinek megjelenítése PHP-vel

unreal · 2005. Jún. 17. (P), 09.06
Hello.
csak egy hangyányi segítséget szeretnék kérni!
Azt szeretném megcsinálni, hogy a PHP jelenitse meg az összes képet, ami egy adott könyvtárban van!
valami könyvtárlistázás+<IMG src="">
Köszi szépen!
 
1

Mi a kérdés?

attlad · 2005. Jún. 17. (P), 09.31
És úgy mégis hol akadtál el a feladat megoldásában?

Attila
2

könyvtár tartalom listázás

unreal · 2005. Jún. 17. (P), 09.41
könyvtár tartalom listázás
4

Poetro · 2005. Jún. 17. (P), 09.48

<?php
$path= 'images';
$dh = opendir($path);
$files = array();
while (false !== ($file = readdir($dh))) {
	if ($file != "." && $file != "..") {
		$files[]=$file; //fájlok nevei a files tömbbe kerülnek
	}
}
?>
--------
Poetro
5

kösz

unreal · 2005. Jún. 17. (P), 09.54
kösz. már megoldották! :)
3

mine is yours and yours is mine

bbalint · 2005. Jún. 17. (P), 09.46

<?php
  $könyvtár = 'c:/itten/vannak/ni/a_képek'; // ez jó... valamire
  $kiterjesztések = 'jpg jpeg png gif'; // ezeket a kiterjesztéseket nézi; felsorolni őket szóközzel elválasztva kell
  
  // -- innen programkód, békénhagyni tessék
  
  $kiterjesztések = '/('.implode('|', explode(' ', $kiterjesztések)).')\z/i'; // reguláris kifejezés csinálása a kiterjesztésekből, mer' az jó
  $filék = opendir($könyvtár); // könyvtár mögnyitása
  while(($file = readdir($filék)) !== false) // könyvtár végigolvasása
    if(preg_match($kiterjesztések, $file)) // ha stimmt a regexp
      print('<img src="/'.$könyvtár.'/'.$file.'"/><br/>'); // <img/> tag meg egy sortörés kírása
?>
ilyesmi, PHP-ban, jó lesz?
alkönyvtárakat nem kezel, amúgy van egy rakat ingyenes galéria (internetes keresők mutatak neked sokat, jót)

bbalint
6

kÖszi

unreal · 2005. Jún. 17. (P), 09.57
öö... lehet hogy a keresők mutatnak, de nekem úgymond pórias kell.
ja ez felkerülési sorrendben mutatja a képeket, vagy ABC szerint???????????????????????????


Burgermeiszter Zoltán
8

Nincs sorrend

Poetro · 2005. Jún. 17. (P), 10.44
Nincs elméletileg sorrend, hogy hogyan kerülnek listázásra a fájlok. Azért ajánlanám mindenképpen azt a megoldást, hogy egy asszociatív tömbbe pakold a fájlneveket, mert utána tudod rendezni. Hogy miket tárolsz el a tömbben, az már csak rajtad múlik, érdemes azt eltárolni, ami alapján rendezni szeretnél.
--------
Poetro
10

filectime, név szerinti rendezés

bbalint · 2005. Jún. 17. (P), 10.53
amit én írtam, az csak végigolvassa a könyvtárat, vagyis ő úgy, olyan sörrendben fogja látani a képeket, ahogy az op'rendszer/filerendszer rendezi (ez általában a létrehozási/felkerülési idő)
ha név szerint szeretnéd, akkor a Poetro megoldását kell módosítani egy rendezéssel a végén

  sort($files, SORT_STRING);
vagy, a zén-féle kód, módosítva:

<?php
  $könyvtár = 'c:/itten/vannak/ni/a_képek'; // ez jó... valamire
  $kiterjesztések = 'jpg jpeg png gif'; // ezeket a kiterjesztéseket nézi; felsorolni őket szóközzel elválasztva kell
  
  // -- innen programkód, békénhagyni tessék
  
  $kiterjesztések = '/('.implode('|', explode(' ', $kiterjesztések)).')\z/i'; // reguláris kifejezés csinálása a kiterjesztésekből, mer' az jó
  $filék = opendir($könyvtár); // könyvtár mögnyitása
  $képek = array(); // tömba kép-nevek tarolásához
  while(($file = readdir($filék)) !== false) // könyvtár végigolvasása
    if(preg_match($kiterjesztések, $file)) // ha stimmt a regexp
      $képek[] = $könyvtár.'/'.$file;
  
  natsort($képek); // rendezés a "natural order" (természetes sorrend) algoritmus alapján
  
  while(list(, $kép) = each($képek))
    print('<img src="/'.$kép.'"/><br/>'); // <img/> tag meg egy sortörés kírása
?>
ez a természetes sorrend azért jó, mert (lásd PHP Manual) úgy rendez, ahogy egy ember tenné
Hagyományos rendezés
Array
(
    [0] => img1.png
    [1] => img10.png
    [2] => img12.png
    [3] => img2.png
)

Természetes rendezés
Array
(
    [3] => img1.png
    [2] => img2.png
    [1] => img10.png
    [0] => img12.png
)

bbalint
7

Bocs

ada · 2005. Jún. 17. (P), 10.07
preg_match() és implode() helyett nem egyszerűbb explode() után rögtön egy in_array()-el vizsgálni? :-)
9

stílus?

bbalint · 2005. Jún. 17. (P), 10.44
(szvsz) egy zval-féle PHP tömböt lassabb minden egyes alkalommal végignézni meg előtte egy szövegből kinézni a kiterjesztst, mint a PCRE-nek megnézni két szöveget, ráadásul a [code]\z[code] miatt mindezt a szöveg végétől kezdi és mivel a file kiterjesztések általában három-négy karakteresek, ezért csak annyit is fog elolvasni a memóriából, nem kezdi el reset()ni a tömböt meg végigolvasni ("foreach")

azonkívül, profibban néz ki, én a sebességre és a saját elgondolásomra szavazok.

bbalint
11

szvsz

unreal · 2005. Jún. 17. (P), 13.07
a sebesség a lényeg!


Burgermeiszter Zoltán
12

témafelújítás + linkek

richard33 · 2009. Aug. 29. (Szo), 21.56
Sziasztok!

Nekem egy olyan képlistázóra lenne szükségem, ahol a könyvtárban a képek mellett lenne egy (txt vagy xml) fájl, amiben a fájl mellé egy url-t is rendelnék.

Feladat: kilistázni a képeket és minden kép egy banner lenne, ami egy bizonyos url-re mutasson. Mindegyik máshová.

A feladat forditva is él: lenne egy txt vagy xml, amiben a kép címe és a linkje van és azokat listázná ki.

Köszike
13

Munka / állás?

Poetro · 2009. Aug. 29. (Szo), 22.16
Hol akadtál el? Meddig jutottál?
  1. listázó:
    • Beolvasom a fájlokat a könyvtárba, és külön csoportosítom tömbbe / objektumba a xml / txt-t a képpel.
    • Elemzem az xml/txt-t és kiveszem belőle az URLt.
    • Kiíratom a képeket a linkkel.

  2. txt / xml elemző
    • Beolvasom a txt/xml filet.
    • Elemzem a txt/xml filet, csinálok egy tömböt kép / url párokkal.
    • Kiíratom a képeket a linkkel.

14

sietünk főnök

gex · 2009. Aug. 29. (Szo), 22.21
elég ha csak reggelre készül el vagy mindenképpen be kéne fejezni éjfélig? sajnos szombat este lévén kevesen ülnek a gép előtt hogy a szabadidejüket/munkájukat félredobva a szolgálatodba állhassanak. :(
16

persze

richard33 · 2009. Aug. 29. (Szo), 22.50
az idő nem lényeg...már úgy is ezzel szüttyögök már 2 hónapja...
vagyis nem ezzel, hanem a lappal...:) de ez is része

nagyon kezdő (fapados) php-s vagyok még
15

listázó

richard33 · 2009. Aug. 29. (Szo), 22.47
nekem személy szerint a 2. megoldás jobban tetszik, bár valahol olvastam, hogy a fájlnevet külön lehet venni a kiterjesztéstől. Így ha a fájlnevet mondjuk index.hu.jpg re állítom, akkor a fájlnév már egyből tartalmazza a linket is.

így már csak ki lehetne listázni a képeket és url-nek meg lehetne adni a fájlnév első részét kiterjesztés nélkül.

Van ilyen?

A fenti megoldásokkal még nem jutottam semmire, nem listáz semmit...
17

köszike

richard33 · 2009. Aug. 29. (Szo), 23.21
poetro és egy kis fapados összevissza irogatás szülte ezt:

<?php $path= 'images'; $dh = opendir($path); $files = array(); while (false !== ($file = readdir($dh))) { if ($file != "." && $file != "..") { $files[]=$file; print('<a href="http://www.'.$file.'"/><img width="160px" src="/'.$path.'/'.$file.'"/></a><br/>');}} ?>

és ez jó lett, csak minden képet át kell nevezni linkes névre.
image.jpg ---> sajatlink.hu

kérdés csak az, hogy minden böngésző lekezeli e ezt?
18

Csak majd ne felejtsd el...

erenon · 2009. Aug. 30. (V), 00.37
Biztos jó, csak majd ha jön egy oldal, aminek a hostja nem www (pl.: blog.pistike.hu), akkor ne felejtsd el átnevezni az összeset. Nem igazán tartom szépnek a megoldást, a jpg-nek vannak meta mezői, amiket használhatsz, ha pedig ez nem elérhető, akkor még mindig flexibilisebbnek tartom egy textfile vezetését, amíg nem lépsz tovább egy adatbázis backendre.
19

hát igen

richard33 · 2009. Aug. 30. (V), 07.49
Mint mondtam én egy fapados php-s vagyok...
leveszem az állandó www-t. ha kell majd beleirom a fájlnévbe. működik: kipróbáltam még éjszaka :)

De: igazad van! legelső kérdésemben volt a probléma felvetés. Amig nem érkezik rá jobb megoldás kénytelen vagyok törni rajta a fejem és összeollózgatni innen-onnan a kódrészleteket.

Ezért is kérdeztem, hogy ben lehet-e külön kezelni a fáljnevet a kiterjesztéstől. A meta mezőkről eddig nem is hallottam :) - utánanézek