11 25 02 

<?php

/**
 * @file heure_binaire.php
 * @brief Ce script va afficher une horloge binaire.
 *
 * @note Les images sont contenues dans ce fichier
 *
 * @author hughes monget
 * @see http://monget.com/
 */

// echo '<input type="text" value="',base64_encode(file_get_contents('plein.gif')),'" /><br />','<input type="text" value="',base64_encode(file_get_contents('vide.gif')),'" />'; exit;

if (isset($_REQUEST['image']) && is_string($_REQUEST['image']) && in_array($_REQUEST['image'], array('plein''vide')))
{
    switch (
$_REQUEST['image'])
    {
        case 
'plein'$raw_image base64_decode('R0lGODlhDwAPAPcAAAAAAMDAwP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAP8ALAAAAAAPAA8AAAg+AP8JFAigYMGBCP8ZXHgQIcOHAxkKEABRYcEAAR4eXJhRo0SPDymCHEnyYUcAFjWeJKhyYcSRCUEmfGkwYUAAOw==');
            break;
        case 
'vide'$raw_image base64_decode('R0lGODlhDwAPAPcAAAAAAMDAwP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAP8ALAAAAAAPAA8AAAhLAP8JFAigYMGBCP8VFMCQ4UGEABpKdDgw4sSJAAgyDBDgooCMFgV09PgxJEmHJk8uPNlwJcmRIF9SVOhx5MeKKhO6RJmwosGMCAMCADs=');
            break;
    }
    
header('Content-Type: image/gif');
    echo 
$raw_image;
    exit;
}

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
        <title>Heure binaire</title>
        <style type="text/css">
        <!--
        -->
        </style>
    </head>
    <body>
<?php

define
('SC'$_SERVER['SCRIPT_NAME']);

$str_heure date('His');

// Création de la matrice de bits.
$arr_matrice = array();
for (
$ii 0$nn strlen($str_heure); $ii $nn$ii++)
{
    
$int_chiffre intval($str_heure{$ii});
    
$str_binaire base_convert($int_chiffre102);
    
$str_binaire str_pad($str_binaire4'0'STR_PAD_LEFT);
    
$arr_matrice[] = str_split($str_binaire);
}

// Transposition de la matrice.
$ligne  6;
$colone 4;
$arr_transpose = array();
for (
$ii 0$ii $ligne$ii++)
{    for (
$jj 0$jj $colone$jj++)
    {
        
$arr_transpose[$jj][$ii] = $arr_matrice[$ii][$jj];
    }
}

// Parcours de la matrice.
$ligne 4;
$colone 6;

echo 
'<table>';
for (
$ii 0$ii $ligne$ii++)
{
    echo 
'<tr>';
    for (
$jj 0$jj $colone$jj++)
    {
        
$str_url SC.'?image=';
        if (
$arr_transpose[$ii][$jj])
            { 
$str_url .= 'plein'; }
        else
            { 
$str_url .= 'vide'; }
        echo 
'<td><img src="',$str_url,'" title="',$arr_transpose[$ii][$jj],'" /></td>';
        if ((
$jj+!= $colone) && $jj 2)
        {
            echo 
'<td>&nbsp;</td>';
        }
    }
    echo 
'</tr>';
}

// Affichage de l'heure.
echo '<tr>';
for (
$ii 0$nn strlen($str_heure); $ii $nn$ii++)
{
    echo 
'<td>'.$str_heure[$ii].'</td>';
    if (
$ii 2) { echo '<td>&nbsp;</td>'; }
}
echo 
'</tr>';

echo 
'</table>';

echo 
'<hr />';
highlight_file(__FILE__);

?>
<!--
<hr />
<p><a href="http://fr.wikipedia.org/wiki/Montre_à_affichage_binaire">http://fr.wikipedia.org/wiki/Montre_à_affichage_binaire</a></p>
<p>Les images sont générées par ce script.</p>
<p>Certains ronds blancs ne deviendront jamais noirs.</p>
-->
    </body>
</html>