Volledige versie bekijken : lijst van alle .jpg's in folder (PHP)
fons
%Europe/Berlin %350 %2006, 09:25
Hi PHP experts,
Ikzelf werk met .asp en heb een systeempje om een directory te scannen en files eruit te filteren. (eventueel te sorteren, alfabetisch, op size, datum, ...)
Nu zou ik datzelfde, enkel de jpg's (niet gesorteerd !!), moeten doen in php.
Maar ik heb geen kaas gegeten van php! Ik heb hier en daar iets gevonden maar kan het niet echt aanpassen.
Is er iemand die mij op weg kan helpen?
Een simpel lijstje met alleen de .jpg's uit een te bepalen directory dat ik dan kan omzetten naar xml en in flash gebruiken.
EDIT:
OK, ik ben eruit.
Ben weer wat voorbarig geweest.
DIT TOPIC MAG VERWIJDERD WORDEN
yusufdestina
%Europe/Berlin %362 %2006, 09:41
<?php
class Listfiles{
var $dir= '.';
var $filter = false;
var $filetype = array();
var $files = array();
function Listfiles($ext=false){
$args = func_get_args();
$this->filter = (count($args))?true: false;
if($this->filter){
foreach($args as $e){
array_push($this->filetype, $e);
}
}
return($this->filetype);
}
function setDir($dir = false){
$this->dir = trim($dir);
if(is_dir($this->dir)){
return true;
}
return false;
}
function getFiles(){
$handle = @opendir($this->dir);
if($handle){
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
if(is_file($this->dir . "/" . $file)){
$fileinfo = pathinfo($this->dir . "/" . $file);
foreach($this->filetype as $type){
if($type == $fileinfo['extension']){
array_push($this->files,$file);
}
}
}
}
}
closedir($handle);
return($this->files);
} else {
return ("error: Not a valid directory resource: " . $this->dir);
}
}
}
/* voorbeeld */
$test = new Listfiles('jpg', 'jpeg');
$dir = $test->setDir('.');
$files = $test->getFiles();
print '<pre>';
print_r($files);
print '</pre>';
Heeft als output:
Array
(
[0] => 005.jpg
[1] => 009.jpg
[2] => 050331_big.jpg
[3] => 0o01.jpg
[4] => chrb_116.jpg
[5] => chrb_034.jpg
[6] => CS_2.jpg
[7] => desktop5_1600x.jpg
[8] => ff05.jpg
[9] => freddy.jpg
[10] => horse.jpg
[11] => luc.jpg
[12] => 2k5_014.jpg
[13] => 2k5_024.jpg
[14] => PA-010.jpg
[15] => PA-011.jpg
[16] => pay-3.jpg
[17] => paffy10.jpg
[18] => paffy6_001.jpg
[19] => stefaan.jpg
[20] => stefanie.jpg
)
Gisteren heb ik deze class geschreven (kan verbeterd worden... ;) ) en nu kan jij hem gebruiken...
fons
%Europe/Berlin %363 %2006, 09:43
yusufdestina,
Ik ben eruit, tnx anyway
brossiekoppie
%Europe/Berlin %368 %2006, 09:51
Ik gebruik altijd deze functie:
Je leest de dir uit, je kijkt of het eindigt op .jpg of .JPG dan plaats je ze allemaal in een array.
Die kan je dan sorteren zoals je wil (als je wil sorteren op bestandsgrootte dan zal je nog een extra value per foto in je array moeten steken om ze ook daarop te sorteren)
function getPhotos($p_sPath){
$path_to = 'images/';
if ($handle = opendir($path_to.$p_sPath)) {
$files = array();
while (false !== ($file = readdir($handle))) {
if (/*$file != '.' && $file != '..'*/ eregi(".JPG$", $file) && eregi(".jpg$", $file)) {
$files[] = $path_to.$p_sPath.'/'.$file;
}
}
closedir($handle);
}
return $files;
}
$photos = array();
$photos = getPhotos($_GET['url']);
foreach($photos as $photo) {
echo 'Foto: '.$photo;
}
Let wel op: dit systeem is eigenlijk niet zo veilig, maar toch; maak dat er in de functie altijd wel zo'n basedir staat zoals hier images/; als er dan iemand andere url invoert krijg je: http://jesite.be/images/http://www.xss.org dus dat is eigenlijk niet zo erg.
EDIT; zie juist dat er al werd geantwoord :D
vBulletin® v3.8.1, Copyright ©2000-2012, Jelsoft Enterprises Ltd.