<?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_chiffre, 10, 2);
$str_binaire = str_pad($str_binaire, 4, '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+1 != $colone) && $jj % 2)
{
echo '<td> </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> </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>