Streamer une image en PHP

Qu’est qu’un stream?

un stream est un flux, c’est à dire un envoi continu d’information. Utilisé dans le monde de la vidéo ou de la musique, la lecture d’un stream est le fait de lire sans attendre la fin du téléchargement du fichier, dans un but but de rapidité bien entendu. Dans notre exemple, il s’agit de télécharger l’image sous la forme d’un flux.

Par rappor à la méthode classique d’inclusion d’une image en HTML

<img src="chemin/vers/image.png" />

On va mettre à la place un fichier PHP

<img src="myimage.php" />

Qui aura pour but de montrer l’image in fine, mais au travers d’un fichier PHP. Et ceci est très intéressant car il va nous permettre de faire beaucoup de choses.

Le besoin est par exemple de savoir combien de fois l’image a été téléchargée, car grâce au PHP on peu implémenter facilement ce code, car si on parse les log du serveur web, c’est fastidieux, alors que là c’est facile.

Script d’exemple

<?php
header('Content-type: image/jpeg');
$file = './streamimage.jpg';
$src = imagecreatefromjpeg($file);
$res = imagejpeg($src);
if($res){
    $handle = fopen('stat.txt','a+');
    $record = date('y-m-d H:i:s') . " " . $_SERVER['HTTP_REFERER'] .  "\n";
    fwrite($handle,$record);
    fclose($handle);
}
die;

Dans l’exemple ci-dessus, chaque fois que l’image est streamée, on logue dans un fichier l’heure et le referer.

Vous aimerez aussi...