hallo
hoe kan ik het beste een text bestand uitlezen dat ongeveer zo uitziet

1-9-2007|test1|1:0|Hier wat meer info
5-1-2007|test2|1:0|Hier wat meer info
1-3-2007|test3|1:0|Hier wat meer info
6-8-2007|test4|1:0|Hier wat meer info

de gegevens volgorde is
ik wil dus de variable op deze manier hebben
datum|titel|tijd|extra info

en hoe kan ik zorgen dat de tij (de 3de rij word weergegeven als 01:01 in plaats van 1:1
en hoe kan ik ze op volgorde van datum laten uitlezen en laten weergeven

en hoe kan ik de volgende 5 gebeurte nissen uitlezen uit het bestan
alvast bedankt
robert
<?php
    /*
     * Voorbeeld inhoud van agenda.txt:
1-9-2007|test1|1:0|Hier wat meer info
5-1-2007|test2|1:0|Hier wat meer info
1-3-2007|test3|1:0|Hier wat meer info
6-8-2007|test4|1:0|Hier wat meer info
     */
    
    $sFile = 'agenda.txt';
    $aRegels = file ( $sFile );
    
    foreach ( $aRegels as $iRegelNummer => $sRegel )
    {
        $aDelen = explode ( '|' , $sRegel );
        /*
         * print_r ( $aDelen );
         */
        
        $aTijdDelen = explode ( ':' , $aDelen [ 2 ] );
        
        $iUur = intval ( $aTijdDelen [ 0 ] );
        $iMinuut = intval ( $aTijdDelen [ 1 ] );
        
        $aDatumDelen = explode ( '-' , $aDelen [ 0 ] );
        
        $iDag = intval ( $aDatumDelen [ 0 ] );
        $iMaand = intval ( $aDatumDelen [ 1 ] );
        $iJaar = intval ( $aDatumDelen [ 2 ] );
        
        $iDatumTijd = mktime ( $iUur , $iMinuut , 0 , $iMaand , $iDag , $iJaar );
        
        $aMaanden = array
        (
            'januari' ,
            'februari' ,
            'maart' ,
            'april' ,
            'mei' ,
            'juni' ,
            'juli' ,
            'augustus' ,
            'september' ,
            'oktober' ,
            'november' ,
            'december'
        );
        
        if ( $iMaand >= 1 AND $iMaand <= 12 )
            $sMaand = $aMaanden [ $iMaand - 1 ];
        else
            $sMaand = 'onbekend';
        
        $sDagVdWeek = date ( 'w' , $iDatumTijd );
        $iDagVdWeek = intval ( $sDagVdWeek );
        
        $aDagenVdWeek = array
        (
            'zondag' ,
            'maandag' ,
            'dinsdag' ,
            'woensdag' ,
            'donderdag' ,
            'vrijdag' ,
            'zaterdag'
        );
        
        if ( $iDagVdWeek >= 0 AND $iDagVdWeek <= 6 )
            $sDagVdWeek = $aDagenVdWeek [ $iDagVdWeek ];
        else
            $sDagVdWeek = 'onbekend';
        
        $sDatum = $sDagVdWeek . ' ' . date ( 'd' , $iDatumTijd ) . '  ' . $sMaand . ' ' . date ( 'Y' , $iDatumTijd ) . ' om ' . date ( 'H:s' , $iDatumTijd );
        
        $sTitel = $aDelen [ 1 ];
        
        unset ( $aDelen [ 0 ] );
        unset ( $aDelen [ 1 ] );
        unset ( $aDelen [ 2 ] );
        $sExtraInfo = implode ( '|' , $aDelen );
        
        
        $aNieuw [ $iDatumTijd ] [ ] = array (
        	'sDatum' => $sDatum ,
        	'sTitel' => $sTitel ,
        	'sExtraInfo' => $sExtraInfo
        );
    }
    
    ksort ( $aNieuw );
    
    foreach ( $aNieuw as $iDatumTijd => $aRijen )
    {
    	foreach ( $aRijen as $iRijNummer => $aGegevens )
    	{
	        echo '
    	        <p>
        	        <strong>Datum en tijd:</strong> ' . $aGegevens [ 'sDatum' ] . ' <br />
            	    <strong>Titel:</strong> ' . $aGegevens [ 'sTitel' ] . ' <br />
	                <strong>Extra info:</strong> ' . $aGegevens [ 'sExtraInfo' ] . '
    	        </p>
	        ';
    	}
    }
?>
Alstublieft
<?php
    for ($i = 0; $i < 100; $i++) {
        echo '<p>' . sprintf ('%02d', $i) . '</p>';
    }
?>

Output:
01
02
03
bedankt nu werkt het presies zoals ik wil
morgen ga ik me eens op mijn gemak de code bestuderen zodat ik als ik nog een keer zo een probleem heb het zelf ook kan oplossen

Reageren