/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Vælg billeder fra en mappe og spyt ud!
Fra : Alexander P.


Dato : 05-12-05 16:18

Hej NG,

Ved ikke om det er muligt, men er det muligt at få PHP til at
vælge alle filer (i dette tilfælde billeder) fra en mappe og få
fat i destiantionen og navnet, og herefter spytte dem ud.

hvis dette er muligt, er det så også muligt at tjekke, hvis du
ser på et billede om der er et billede efter dette

- altså et form for Galleri!

er dette muligt, og har i mulighed for at give eksempler?

- På forhånd tak.

-/Ap

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Peter Brodersen (06-12-2005)
Kommentar
Fra : Peter Brodersen


Dato : 06-12-05 01:04

On 05 Dec 2005 15:17:59 GMT, Alexander P. <awpdk@hotmail.com> wrote:

>Ved ikke om det er muligt, men er det muligt at få PHP til at
>vælge alle filer (i dette tilfælde billeder) fra en mappe og få
>fat i destiantionen og navnet, og herefter spytte dem ud.

Kig på glob() for at få en liste over fx alle filnavne i en mappe
(eller alle .jpg-filer eller hvad du foretrækker) ud i et array.

>hvis dette er muligt, er det så også muligt at tjekke, hvis du
>ser på et billede om der er et billede efter dette

Du kan bruge array_search() til at få nummeret (nøglen) i det array,
du har trukket ud med glob(), med udgangspunkt i fx et filnavn. Ud fra
den nøgle kan du så tjekke om der er nogen fil efter den.

glob(): http://dk2.php.net/glob
array_search(): http://dk2.php.net/array_search
--
- Peter Brodersen

Geert Lund (12-12-2005)
Kommentar
Fra : Geert Lund


Dato : 12-12-05 22:31

Alexander P. wrote:

> er dette muligt, og har i mulighed for at give eksempler?

En funktion jeg ofte benytter til den slags er nedenstående hurtigt
sammenflikkede kode:

<?php

// Make this the relative path to the images, like "../img" or
"random/images/".
// If the images are in the same directory, leave it blank.
$folder = 'images/rotate/';

// Space seperated list of extensions, you probably won't have to
change this.
$exts = 'jpg jpeg';

$files = array(); $i = -1; // Initialize some variables
if ('' == $folder) $folder = './';
$handle = opendir($folder);
$exts = explode(' ', $exts);
while (false !== ($file = readdir($handle))) {
foreach($exts as $ext) { // for each extension check the extension
if (preg_match('/\.'.$ext.'$/i', $file, $test)) { // faster
than ereg, case insensitive
$files[] = $file; // it's good
++$i;
}
}
}
closedir($handle); // We're not using it anymore
mt_srand((double)microtime()*1000000); // seed for PHP < 4.2
$rand = mt_rand(0, $i); // $i was incremented as we went along

//// Internal functions:
function load_jpeg($imgname) {
$im = @imagecreatefromjpeg($imgname); /* Attempt to open */
if (!$im) { /* See if it failed */
$im = imagecreate(135, 135); /* Create
a blank image */
$bgc = imagecolorallocate($im, 255,
255, 255);
$tc = imagecolorallocate($im, 0, 0, 0);
imagefilledrectangle($im, 0, 0, 135,
135, $bgc);
/* Output an errmsg */
imagestring($im, 1, 5, 5, "Error
loading $imgname", $tc);
}
return $im;
}


//// Output the picture
$image = load_jpeg( $folder.$files[$rand] );
header("Content-type: image/jpeg");
imagejpeg($image);

?>

Koden kan uden tvivl optimeres i en mængde forskellige retninger - værd
at bemærke er dog bl.a. at koden skal udbygges en lille smule hvis den
skal tage andre typer billeder end jpg filer - det burde dog ikke være
så svært.

Ovenstående virker i dette tilfælde altså ved at du i en mappe (relativt
fra din php-fil) kaldet images/rotate/ smider en stak jpg/jpeg bileder
op - og herefter vil den random vælge en af filerne.

--
Med venlig hilsen
Geert Lund,
www.GLD.dk

Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408526
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste