Vérifier si une valleur d'un array existe

Résolu
Utilisateur anonyme -  
 Utilisateur anonyme -
Bonjour, j'utilise actuellement ce code :
  $fichier = "upload/";
  $filename = $_GET['id_img'];
  $point = ".";
  $total = $fichier.$filename.$point;
  $jpg = "jpg";
  $jpeg = "jpeg";
  $bmp = "bmp";
  $gif = "gif";
  if (file_exists($total.$jpg))
    {
      echo '<img src="'.$total.$jpg.'" border="0" alt="" />';
    }
  else if (file_exists($total.$jpeg))
    {
      echo '<img src="'.$total.$jpeg.'" border="0" alt="" />';
    }
  else if (file_exists($total.$bmp))
    {
      echo '<img src="'.$total.$bmp.'" border="0" alt="" />';
    }
  else if (file_exists($total.$gif))
    {
      echo '<img src="'.$total.$gif.'" border="0" alt="" />';
    }
  else
    {
      echo 'Une erreur s\'est produite';
    }


Vous l'aurais compris, il permet de savoir si une image existe et de l'afficher. Mais cette fonctionne est assai lourde. Je voudrais savoir comment je peut faire pour la recourcir. J'ai une petite idée, faire un tableau (array) avec toute les extensions :

$ext = array('jpg', 'jpeg', 'bmp', 'gif'); et utiliser la fonction : in_array()
et ..... C'est la que je ne sais pas comment faire, comment vérifier si le fichier existe pour chaque extension et si il existe, afficher l'image.

Si vous avez compris, aidez moi.
Merci

4 réponses

Dalida Messages postés 6728 Date d'inscription   Statut Contributeur Dernière intervention   922
 
salut,

tu peux améliorer un peu ton script mais le problème c'est que tu as le nom du fichier mais pas son extension.
ne peux-tu pas réorganiser le tout pour avoir à la fois le nom et l'extension ?
<?php
	define('DIR', 'upload/');
	$filename = $_GET['id_img'];

	switch(true)
	{
		case file_exists(DIR.$filename.'.jpg'):
			echo '<img src="'.DIR.$filename.'.jpg'.'" alt=""/>';
			break;

		case file_exists(DIR.$filename.'.jpeg'):
			echo '<img src="'.DIR.$filename.'.jpeg'.'" alt=""/>';
			break;

		case file_exists(DIR.$filename.'.bmp'):
			echo '<img src="'.DIR.$filename.'.bmp'.'" alt=""/>';
			break;

		case file_exists(DIR.$filename.'.gif'):
			echo '<img src="'.DIR.$filename.'.gif'.'" alt=""/>';
			break;

		default:
			echo 'Une erreur s\'est produite';
	}
?>
1
dodoecchi Messages postés 454 Date d'inscription   Statut Membre Dernière intervention   29
 
ce serait pas ça que tu cherches ? http://fr3.php.net/manual/fr/function.array-key-exists.php

Dorian
0
Utilisateur anonyme
 
J'ai cherché sur le site que tu ma donnée mais je n'ai pas su adapter les scripts qui y sont présenté. Je ne sais toujours pas comment faire
0
Utilisateur anonyme
 
C'est PARFAIT !
Merci
0