weergeven data van multisort_array
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<?php
$dir = './';
$filepattern = 'cam*.jpg';
$sorting_list = array();
$filemtimes = array();
# Get file/dir listing, else error message
if ( ( $list = glob( $dir . $filepattern ) ) !== false ) {
foreach ( $list AS $file ) {
$filemtime = filemtime( $dir . $file );
# Build array to be sorted with filename and filemtime
$sorting_list[] = array('filename' => $file,
'filemtime' => $filemtime,
);
# This is the list of filemtimes to sort by later
$filemtimes[] = $filemtime;
}
# Sort array based on $filemtimes
# http://php.net/array-multisort Example #3
if ( array_multisort($filemtimes, $sorting_list) ) {
$curimage=0;
while(list($key, $val) = each($sorting_list)){
while(list($key2, $val2) = each($val)){
echo 'galleryarray['.$curimage.']="'.$val2 .'";</br>';
$curimage++;}
}
} else {
echo "List was not sorted by filemtime\n";
}
//var_dump($sorting_list);
} else {
echo 'Directory listing call failed!';
}
?>
$dir = './';
$filepattern = 'cam*.jpg';
$sorting_list = array();
$filemtimes = array();
# Get file/dir listing, else error message
if ( ( $list = glob( $dir . $filepattern ) ) !== false ) {
foreach ( $list AS $file ) {
$filemtime = filemtime( $dir . $file );
# Build array to be sorted with filename and filemtime
$sorting_list[] = array('filename' => $file,
'filemtime' => $filemtime,
);
# This is the list of filemtimes to sort by later
$filemtimes[] = $filemtime;
}
# Sort array based on $filemtimes
# http://php.net/array-multisort Example #3
if ( array_multisort($filemtimes, $sorting_list) ) {
$curimage=0;
while(list($key, $val) = each($sorting_list)){
while(list($key2, $val2) = each($val)){
echo 'galleryarray['.$curimage.']="'.$val2 .'";</br>';
$curimage++;}
}
} else {
echo "List was not sorted by filemtime\n";
}
//var_dump($sorting_list);
} else {
echo 'Directory listing call failed!';
}
?>
Het resultaat van dit script is als volgt:
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
galleryarray[0]="./cam41.jpg";
galleryarray[1]="1257766214";
galleryarray[2]="./cam42.jpg";
galleryarray[3]="1257766508";
galleryarray[4]="./cam43.jpg";
galleryarray[5]="1257766804";
galleryarray[6]="./cam44.jpg";
etc.....
galleryarray[1]="1257766214";
galleryarray[2]="./cam42.jpg";
galleryarray[3]="1257766508";
galleryarray[4]="./cam43.jpg";
galleryarray[5]="1257766804";
galleryarray[6]="./cam44.jpg";
etc.....
De regels met de image bestanden wil ik alleen behouden, alleen krijg ik het na zoeken op internet niet voor elkaar om alleen deze weer te geven zonder dat de timestamp ook als resultaat naar voren komt...
Is er iemand die ziet wat ik fout doe in het 'while' statement of wat ik fout doe?
Alvast bedankt!!
Ik zie zo niet wat je fout doet, maar je kunt met substr() kijken of de waarde in de array eindigt met .jpg. Als dit zo is, kun je hem bijvoorbeeld in een nieuwe array gooien.
Handige post, precies wat ik zocht. Ik gebruik dit php bestandje om een javascript array aan te maken en zo foto's te wisselen op mijn website als zijnde streaming camera beeld. Alleen vanwege de toegevoegde timestamp in de array is er om het beeld een lege plek.
Heb je toevallig al een oplossing gevonden? Indien ik iets gevonden krijg laat ik het ook weten.