Mammouth du PHP |
19665 Messages
27 oct. 2012, 13:15
Salut
AB,
par curiosité, j'ai regardé un peu : pour le problème que tu as soulevé sur la notice, il y aurait une manière plus simple et à mon avis plus élégante de le résoudre.
Personnellement, j'aurais donc ré-écrit la méthode de la manière suivante :
private function Infos_image($fich)
{
$retour = false;
$types_accepte = array(1, 2, 3);
$infos = (file_exists($fich) && false !== exif_imagetype($fich)) ? getimagesize($fich) : false;
if(false !== $infos && !empty($infos[0]) && !empty($infos[1]) && !empty($infos[2]) && in_array($infos[2], $types_accepte))
{
$retour = array($infos[0], $infos[1], $infos[2]);
if(isset($infos['bits']))
{
$retour[] = $infos['bits'];
if(isset($infos['channels']))
{
$retour[] = $infos['channels'];
}
}
}
return $retour;
}
L'idée, c'est que si l'utilisateur qui n'a pas eu de problème et utilise déjà les informations sur les bits et les channels, il ne perdra pas ces informations, pas de régression donc, et en ajoutant ces deux éléments uniquement s'ils sont disponibles, on a plus de notice.
Par ailleurs, tu noteras que j'ai fait sauter le « @ » devant le getimagesize en rajoutant un double test, le premier qui vérifie l'existence du fichier, le second qui vérifie que c'est une image.
My 2¢

Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse 