Verjaardag met txt bestand.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

18/04/2005 16:26:00
Quote Anchor link
Ik zou graag een php script willen hebben die checkt of iemand jarig is. (En de datum + naam staat in een tekstbestandje)

Het mooiste zou het zijn dat hij 2dagen van te voren aangeeft dat iemand over 2 dagen jarig is.

daarna 1 dag van te voren aangeven dat iemand over 1 dag jarig is.

Jarig vandaag:

En dan gisteren was ... jarig.


Is dat mogelijk?

alvast bedankt!
 
PHP hulp

PHP hulp

14/01/2025 12:35:55
 
Rob Berends

Rob Berends

25/04/2005 18:43:00
Quote Anchor link
Hmm,

ik kan me herinneren dat ik ooit zo'n script op hotscripts.com heb zien staan. Werkte best goed, maar ik vond het achteraf nutteloos voor m'n site. Het werkte trouwens wel.
 
Martijn B

Martijn B

25/04/2005 19:13:00
Quote Anchor link
Dit lijkt mij niet al te moeilijk. Je hebt een array met een datums en een nicknames. Deze array ga je gewoon steeds doorzoeken.

Dus bijvoorbeeld:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$aVerjaardagen
= array(
1234_1 => 'nickname1',
1234_2 => 'nickname2',
2234_1 => 'nickname3'
);
?>


1234 en 2234 worden dan timestamps dit om makkelijk en snel te kunnen zoeken wie er over 1 of 2 dagen jarig is. _1 en _2 zijn volgnummers voor mensen die op dezelfde dag jarig zijn.

Van een datum naar een timestamp doe je met de functie mktime(). Deze functie moet je dan gebruiken voor het invoeren en het zoeken naar gebruikers.

Misschien dat ik vandaag nog wel even probeer ;D
Gewijzigd op 25/04/2005 19:14:00 door Martijn B
 
Martijn B

Martijn B

25/04/2005 20:17:00
Quote Anchor link
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
<?php
error_reporting( E_ALL );

# timestamps om te zoeken...
$ts_vandaag        = mktime(0, 0, 0, date('m'), date('d'), date('Y'));
$ts_morgen        = $ts_vandaag + 86400;
$ts_overmorgen    = $ts_morgen + 86400;
$bestand        = './verjaardagen.txt';
$bMaakBestand    = true;
$aVerjaardagen    = array('25-04-05' => array('jantje','peitje'),
                        '26-04-05' => array('truus'),
                        '27-04-05' => array('martijn','kees') );

if( $bMaakBestand || !file_exists($bestand) ){

    # Datums vervangen door een timestamp ( dus "25-04-05" wordt "12334556778" )...
    while( list($datum,$nicknames) = each($aVerjaardagen) ){
    
        $aSplit = explode( '-', $datum );
        $tmp[ mktime( 0, 0, 0, $aSplit[1], $aSplit[0], $aSplit[2] ) ] = $nicknames;
    }

    # Bestand maken...
    @unlink($bestand);

    if( $fh = fopen($bestand, "wb") ){
        fwrite($fh, serialize( $tmp ) );
        fclose($fh);
    }    
}
                

# De array ophalen uit het bestand...
$aVerjaardagen = unserialize( file_get_contents($bestand) );

# Laat het resultaat zien...
if( isset($aVerjaardagen[$ts_vandaag]) || isset($aVerjaardagen[$ts_morgen]) ||
    isset($aVerjaardagen[$ts_overmorgen]) ){
    
    if( isset($aVerjaardagen[$ts_vandaag]) ){
        
        echo '<b>Vandaag is jarig:</b><br>';
        while( list(,$v) = each($aVerjaardagen[$ts_vandaag]) )
            echo $v.'<br>';
    }

    if( isset($aVerjaardagen[$ts_morgen]) ){
        
        echo '<b>Morgen is jarig:</b><br>';
        while( list(,$v) = each($aVerjaardagen[$ts_morgen]) )
            echo $v.'<br>';
    }

    if( isset($aVerjaardagen[$ts_overmorgen]) ){
        
        echo '<b>Overmorgen is jarig:</b><br>';
        while( list(,$v) = each($aVerjaardagen[$ts_overmorgen]) )
            echo $v.'<br>';
    }

}
else
    echo 'Er is vandaag, morgen en overmorgen niemand jarig!';

?>


Als je $bMaakBestand op false zet dan wordt het bestand niet geupdate met eventueel nieuwe nicknames.
Gewijzigd op 25/04/2005 20:21:00 door Martijn B
 

19/05/2005 13:15:00
Quote Anchor link
Bedankt voor jullie hulp.

Maar hij werkt bij mij (nog) niet.

Hoe ik het ook probeer, ik krijg het niet voor elkaar om deze foutmelding eruit te krijgen.

Fatal error: Call to undefined function: file_get_contents() in \verjaardag\test.php on line 32

Wat is hier nog fout aan?
 
- SanThe -

- SanThe -

19/05/2005 13:49:00
Quote Anchor link
file_get_contents

(PHP 4 >= 4.3.0, PHP 5)
file_get_contents -- Leest een bestand volledig in een string

Gebruik je wel de juiste PHP-versie?
 
Andries     

Andries     

19/05/2005 16:04:00
Quote Anchor link
Oeps....

PHP Version 4.2.3

Ik ga het op een nieuwere versie proberen.
 
Andries     

Andries     

16/06/2005 12:24:00
Quote Anchor link
Dit werkt helemaal prima!

Heb een kleine aanpassing doorgevoerd dat ook de personen die gisteren jarig waren ook worden vermeld. (altijd makkelijk als iemand zondag jarig was... dan weet je dat er maandag alsnog gebak te verwachten valt ;-))

Maar dan heb ik nog een vraag...

Hoe kan ik het voorelkaar krijgen dat ook de respectabele leeftijd die iemand gehaald heeft wordt vermeld op de dag dat hij jarig is?
 
Koen schmeets

koen schmeets

16/06/2005 14:57:00
Quote Anchor link
gebruik gewoon een database, en als je t op deze manier wilt doen doe je
een variable de huidige tijd geven en dan vergelijken met de anderen , erafhalen en dan heb je t
dus
jaar nu - jaar geboorte = leeftijd
 
Andries     

Andries     

16/06/2005 15:15:00
Quote Anchor link
Dat ga ik proberen!
Hoop dat dat lukt!
 



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.