Voila l'idée que j'avais:
Et au lieu de générer périodiquement l'image, il suffit d'appeler:
Bon, c'est une version simpliste qui ne gère que par rapport à la dernière entrée de pimage.log, on peut modifier pour tester par rapport à pimage.log et jimage.log
Code PHP :
<?php
// Environement GD2
header ("Content-type: image/png");
putenv('GDFONTPATH=' . realpath('.'));
// On récupère le fichier log message
$file_p = file("../logs/pimage.log");
$ligne1 = array_pop($file_p);
$h1 = str_replace(":", "_", substr($line1, 1, 5));
if (file_exists('final_image_'.$h1.'.png'))
{
// L'image existe, bien horodatée
$image = file_get_contents('final_image_'.$h1.'.png');
echo $image;
exit;
}
$image = imagecreatefrompng("bck_image.png");
// Suppression de l'heure
$ligne1=substr_replace( $ligne1, "", 0, 8);
// Longeur de la ligne
$max=62;
if(strlen($ligne1)>=$max)
{
$ligne1=substr($ligne1,0,$max);
$espace=strrpos($ligne1," ");
$ligne1=substr($ligne1,0,$espace)."...";
}
// On récupère le fichier log join
$file_j = file("../logs/jimage.log");
// Nombre de connecté(s) sur le channel
while($row = array_pop($file_j))
{
if (preg_match('#\]$#', $row))
{
preg_match('#\[m\/([0-9])#', $row, $user);
break;
}
}
// Définition de la couleur et la police d'écriture
$color_p = imagecolorallocate($image, 255, 255, 255);
$font_p = 'message.ttf';
$color_j = ImageColorAllocate ($image, 255, 255, 255);
$font_j = 'users.ttf';
// Insertion du texte
imagettftext($image, 10, 0, 60, 34, $color_p, $font_p, $ligne1); // Message ligne 1
imagettftext($image, 8, 0, 151, 16, $color_j, $font_j, $user[1]); // Nombre d'users
// Génération de l'image
imagepng($image, 'final_image_'.$h1.'.png');
$image = file_get_contents('final_image_'.$h1.'.png');
echo $image;
exit;
?>
Code :
<img src="image.php" />