23/10/2009Pouvoir récupérer les dimensions d'un fichier Flash directement en PHP est intéressant dans la mesure où ça permet de prévoir la taille d'un lecteur vidéo.
Voici comment le faire, selon que le Flash soit du SWF (objet vectoriel) ou du FLV (vidéo) :
Fichier SWF
La fonction getimagesize permet de renvoyer hauteur et largeur :
Fichier FLV
Je n'ai pas écrit cette fonction mais j'ai pu la rencontrer à force de chercher (je remercie au passage son auteur). Je l'ai trouvé au hasard d'un forum sur
Stack Overflow.
print_r(flvdim
($fichier_flv))function flvdim
($name) { $file = @fopen($name, 'rb'); if($file === false) return false; $header = fread($file, 2048); fclose($file); if($header === false) return false; return array( 'width' => flvdim_get
($header, 'width'), 'height' => flvdim_get
($header, 'height') )}function flvdim_get
($header, $field) { $pos = strpos($header, $field); if($pos === false) return false; $pos += strlen($field) + 2; return flvdim_decode
(ord($header[$pos]), ord($header[$pos + 1])); }function flvdim_decode
($byte1, $byte2) { $high1 = $byte1 >> 4; $high2 = $byte2 >> 4; $low1 = $byte1 & 0x0f; $mantissa = ($low1 << 4) | $high2; return ((256 + $mantissa) << $high1) >> 7; } Cas général
Voici le code permettant de renvoyer automatiquement les dimensions d'un SWF ou d'un FLV :
function getDimensionsFlash
($fichier) { $largeur=null; $hauteur=null; $infosFichier=pathinfo($fichier); switch (strtolower($infosFichier['extension'])) { case "swf": $infosTaille=getimagesize($fichier); $largeur=$infosTaille[0]; $hauteur=$infosTaille[1]; break; case "flv"; $infosTaille=flvdim
($fichier); $largeur=$infosTaille["width"]; $hauteur=$infosTaille["height"]; break; } return Array("largeur"=>$largeur, "hauteur"=>$hauteur); } Dernière modification le 03/01/2019 - Quillevere.net