ugrás a tartalomhoz

Adott könyvtárban lévő képek számának meghatározása

Anonymous · 2006. Már. 30. (Cs), 10.19
Sziasztok!

Van egy scriptem, amely megnézi egy adott könyvtárban lévő képeket. Az sNews cms-sében szerepel ez a részlet.

...
$upload_dir = s('image_folder') ."/";
    	$handle= opendir($upload_dir);
		$filelist = "";
		while ($file = readdir($handle)) {
   		if(!is_dir($file) && !is_link($file) && $file <> "Thumbs.db") {
	    	$filelist .= "<a href='$upload_dir$file'>".$file."</a> [ <a href='" .s('website'). "index.php?action=images&task=delete&image=" .$file. "'".if_javascript_on(" onclick='return confirm(\"".l('warning_delete')."\");'",'return').">Delete</a> ]<br />";
....
Hogyan tudom ez alapján meghatározni ezeknek a képeknek a számát?
 
1

Pl így

halee · 2006. Már. 30. (Cs), 10.37
Hello!

például csinálhatod így
$upload_dir = s('image_folder') ."/";
        $handle= opendir($upload_dir);
        $filelist = "";
        $filenum=0;
        while ($file = readdir($handle)) {
           if(!is_dir($file) && !is_link($file) && $file <> "Thumbs.db") {
            $filenum++;
            $filelist .= "<a href='$upload_dir$file'>".$file."</a> [ <a href='" .s('website'). "index.php?action=images&task=delete&image=" .$file. "'".if_javascript_on(" onclick='return confirm(\"".l('warning_delete')."\");'",'return').">Delete</a> ]<br />";
....


így a filenum változóval már meg is számoltad a fileokat, amik a listába kerülnek...

üdv,
Halee
2

Hát mondjuk...

-zsolti- · 2006. Már. 30. (Cs), 10.37
...ha már ciklus, akkor szerintem eredendő, hogy teszel bele egy változót, ami minden egyes iterációkor növekszik.
$i = 0;
while {
$i++;
}
echo 'Ennyi: '.$i;
3

Koszonom

Anonymous · 2006. Már. 30. (Cs), 11.20
Teljesen trivialis megoldas volt... :(
4

Gondolom...

janoszen · 2006. Már. 30. (Cs), 11.26
Gondolom, valami olyasmit vártál, hogy egyetlen parancs, amelyik a fájrendszerből kiolvassa, hogy hány fájl van a könyvtárban... :)
5

Igen...

Anonymous · 2006. Már. 30. (Cs), 11.51
De amint latszik ilyen egyszeruen meg lehet oldani... :) Bocs, kezdo vagyok. :)
9

Nem triviális

janoszen · 2006. Ápr. 1. (Szo), 16.58
Egyáltalán nem kezdő kérdés, mert az enyhénszólva nem triviális, hogy hogyan tárolódnak a fájlrendszerekben a fájlok nevei. Adatbázisoknál másként van, mert ki tudsz adni count() utasítást.

A ReiserFS fejlesztésének a célja az, hogy az adatbázisokat és a filerendszereket közelebb hozza egymáshoz.
6

Sorba rendezes?

Anonymous · 2006. Már. 30. (Cs), 21.23
Hogyan lehet megoldani a fent emlitett kodnal, hogy abc szerint sorbarendezze a file-okat? Jelenleg igaz, hogy tokeletesen beolvassa, de sajnos teljesen ossze-vissza... :(
7

használj tömböt

Fekete Ferenc GDA · 2006. Már. 31. (P), 06.40
próbáld ki,h tömbbe rendezed a megtalált fájlokat. a tömböt pedig abc sorrendbe rendezed, majd ciklussal végigmész és kiíratod.
8

Probalkoztam

Anonymous · 2006. Ápr. 1. (Szo), 12.56

$upload_dir = s('image_folder') ."/";
$handle= opendir($upload_dir);
$filelist = "";
while ($file = readdir($handle)) {
if(!is_dir($file) && !is_link($file) && $file <> "Thumbs.db") {
$files[]=$file;
natcasesort($files);
foreach ($files as $file) 
$filelist .= ".$file."<br />";
Viszont ez minden file-t valamilyen oknal fogva tobbszor tett be a tombe igy a 113 kepbol a vegen 2xxx-et jelentett meg, tobbszor is ismetelve mindegyiket.

Mi lehet a gond?
10

ciklusok

Anonymous · 2006. Ápr. 1. (Szo), 21.33
figyelj oda a ciklusok kezdetére és végére:

<?php
while ($file = readdir($handle)) {
  if(!is_dir($file) && !is_link($file) && $file <> "Thumbs.db") {
    $files[]=$file;
    natcasesort($files);
    foreach ($files as $file) 
      $filelist .= ".$file."<br />";
?>
helyett:

<?php
// fájlok beolvasása
while ($file = readdir($handle)) {
  if(!is_dir($file) && !is_link($file) && $file <> "Thumbs.db")
    $files[]=$file;
}
// rendezés
natcasesort($files);
// lista kiírása
foreach ($files as $file)
  $filelist .= ".$file."<br />";
?>
itt végigmész a könyváron, és minden újabb fájlnál hozzáadod az összes eddigi fájlt a listádhoz. először olvasd be a fájlokat, azután rendezd, végül pedig írasd ki. ha ezeket az -egymástól teljesen független - részfeladatokat szétválasztod, akkor mennie kell.

gex