plaatje per tijd

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Dennis S

Dennis S

19/12/2005 22:32:00
Quote Anchor link
Ik zoek een oplossing waarmee ik een plaatje kan kiezen per tijd, bv dat 's avonds een zonsondergang wordt getoond en 's middags een zon. Deze moet dan via random gekozen worden. Hoe kan ik dit doen. Ik heb tot nu toe deze script om een plaatje random te kiezen uit een bepaalde map.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
<?php
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1

//vul hier in welke folder je wilt gebruiken. als
//je deze script in dezelfde folder zet als je
//plaatjes hoef je hier niks aan te passen


    $folder = '.';

//kies hier op welke extensies je wilt zoeken

    $extList = array();
    $extList['gif'] = 'image/gif';
    $extList['jpg'] = 'image/jpeg';
    $extList['jpeg'] = 'image/jpeg';
    $extList['png'] = 'image/png';


$img = null;


if (substr($folder,-1) != '/') {
    $folder = $folder.'/';
}



if (isset($_GET['img'])) {
    $imageInfo = pathinfo($_GET['img']);
    if (
        isset( $extList[ strtolower( $imageInfo['extension'] ) ] ) &&
        file_exists( $folder.$imageInfo['basename'] )
) {

    $img = $folder.$imageInfo['basename'];
}
}
else {
    $fileList = array();
    $handle = opendir($folder);
    while ( false !== ( $file = readdir($handle) ) ) {
        $file_info = pathinfo($file);
        if (
            isset( $extList[ strtolower( $file_info['extension'] ) ] )
) {

            $fileList[] = $file;
        }
    }

    closedir($handle);


    if (count($fileList) > 0) {
        $imageNumber = time() % count($fileList);
        $img = $folder.$fileList[$imageNumber];
    }
}

if ($img!=null) {
    $imageInfo = pathinfo($img);
    $contentType = 'Content-type: '.$extList[ $imageInfo['extension'] ];
    header ($contentType);
    readfile($img);
}
else {


//hieronder wordt de GD module gebruikt om een plaatje
//te maken met een error als deze script geen plaatjes
//kan vinden. Hiervoor moet de GD module geinstalleerd
//zijn.

    
    if ( function_exists('imagecreate') ) {
        header ("Content-type: image/png");
        $im = @imagecreate (400, 200)
            or die ("Cannot initialize new GD image stream");
        $background_color = imagecolorallocate ($im, 255, 255, 255);
        $text_color = imagecolorallocate ($im, 0,0,0);
        $text_colorred = imagecolorallocate ($im, 255,0,0);
        imagestring ($im, 5, 120, 5, "ERROR ", $text_colorred);
        imagestring ($im, 5, 5, 25, "deze script geen plaatjes kan vinden", $text_colorred);
        imagestring ($im, 3, 5, 100, "De oorzaak kan zijn:", $text_color);
        imagestring ($im, 2, 5, 125, "1. de script kan geen plaatjes vinden met de jouw gekozen extensies", $text_color);
        imagestring ($im, 2, 5, 150, "2. Er bevinden geen plaatjes in de directory: $folder", $text_color);
        
        imagepng ($im);
        imagedestroy($im);
    }
}

?>
 
PHP hulp

PHP hulp

22/12/2024 09:50:46
 
Arend a

Arend a

19/12/2005 22:53:00
Quote Anchor link
Zoiets?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?
$uur
= date('G');
if ($uur < 6   ) { $tijdstip = "nacht" };
if (($uur >= 6) && ($uur < 12)) { $tijdstip = "ochtend" };
if (($uur >= 12) && ($uur < 18)) { $tijdstip = "middag" };
if ($uur >= 18 ) { $tijdstip = "avond"};
?>
 
Dennis S

Dennis S

19/12/2005 23:40:00
Quote Anchor link
Ik heb het nu via arrays gedaan, is er een beter oplossing??

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php

$tijd
= date(G);
$tijdstip=array("nacht","nacht","nacht","nacht","nacht","nacht","avond","dag","dag","dag","dag","dag","dag","dag","dag","dag","dag","dag","dag","avond","avond","avond","avond","nacht");

$locatie = "../../../../e107_themes/aqua/images/banner/".$tijdstip[$tijd]."";
$folder = $locatie;

?>
 
Jan Koehoorn

Jan Koehoorn

19/12/2005 23:44:00
Quote Anchor link
Als het werkt, werkt het ...
Maar ik vind je array er nogal onhandig uit zien.
Gewijzigd op 19/12/2005 23:45:00 door Jan Koehoorn
 
Dennis S

Dennis S

19/12/2005 23:48:00
Quote Anchor link
@jan

hoe bedoel je dat ik mijn arrays onhadig hebt geschreven. moet ik het bv zo doen array("0"=>"nacht" enz of kan ik nacht, dag en avond verkorten??


ja het werkt wel
 
Jan Koehoorn

Jan Koehoorn

19/12/2005 23:52:00
Quote Anchor link
Het onhandige er aan is dat je nogal veel dubbele elementen in je array hebt. Maar ik ben erg voor "don't fix it if it works"
 
Dennis S

Dennis S

19/12/2005 23:56:00
Quote Anchor link
edit: zie m'n laatste post
Gewijzigd op 20/12/2005 01:28:00 door Dennis S
 
Burdy

Burdy

19/12/2005 23:56:00
Quote Anchor link
Wat eigenlijk zou moeten zijn:
'Don't-Fix-It-If-It's-Not-Broken'. ;)
 
Jan Koehoorn

Jan Koehoorn

19/12/2005 23:57:00
Quote Anchor link
Ja, of: don't mend it if it's not broken
 
Dennis S

Dennis S

20/12/2005 00:01:00
Quote Anchor link
of:
why bother do it again ;)


voorbeeld van het resultaat
SET dev site
Ik heb trouwens een bestaande theme aangepast
Gewijzigd op 20/12/2005 01:38:00 door Dennis S
 
Dennis S

Dennis S

20/12/2005 00:47:00
Quote Anchor link
wat kan een oplossing toch makkelijk zijn ;)

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php

if(date(G) >= 18){ // 18:00 tot 23:59

    $random_map = "avond/";
}

elseif(date(G) <= 5){ // 00:00 tot 5:59

    $random_map = "nacht/";
}

else{

    $random_map = "dag/";
}


?>
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.