Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1314 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  problème d'affichage avec preg_match

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

problème d'affichage avec preg_match

n°1361496
PleT
Posté le 07-05-2006 à 23:50:04  profilanswer
 

Bonsoir,  
je voudrais faire un script qui vérifie l'extension d'une image avec preg_match, et qui utilise le résultat pour afficher l'extension utilisée.
Le probleme est que ca fonctionne avec seulement 3 des 4 extensions, et je vois absolument pas pourquoi  :??:  
 

Code :
  1. ...
  2. if (!isset($_POST['image']) || $_POST['image'] == "" )
  3. {
  4. echo'<h4>Veuillez rentrer le nom d\'une image</h4>';
  5. }
  6. else
  7. {
  8. $chaine = "/^[\S\s]+\.jpg|jpeg|png|gif$/i"; 
  9. $image = $_POST['image'];
  10. if (preg_match($chaine, $image, $tab))
  11. {
  12.  $chaine2 = "/^\.+jpg|jpeg|gif|png$/i";
  13.  preg_match($chaine2, $image, $tab2);
  14.  echo 'Votre image a pour extension&nbsp;'.strtolower($tab2[0]);
  15. }
  16. else
  17. {
  18.  echo'Votre image n\'a pas d\'extension connue :o';
  19. }
  20. ...


 
les bouts tronqués consernent la mise en page.
 
La seule extension qui ne marche pas est le jpg (la premiere dans la chaine).
 
L'erreur affichée :

Citation :

Notice: Undefined offset: 0 in k:\public_html\test_img2.php on line 20
Votre image a pour extension


 
Merci d'avance pour votre aide  :)

mood
Publicité
Posté le 07-05-2006 à 23:50:04  profilanswer
 

n°1361508
sielfried
Posté le 08-05-2006 à 00:32:09  profilanswer
 

$extension = pathinfo($_POST['image'], PATHINFO_EXTENSION);


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1361509
PleT
Posté le 08-05-2006 à 00:42:50  profilanswer
 

Merci, mais le problème est que ce soit limité aux images, et avec l'utilisation de preg_match (devoir a rendre et je trouve pas la solution :cry: )
 
Mais merci pour l'astuce, ça me servira tantôt  :D

n°1361511
sielfried
Posté le 08-05-2006 à 00:49:07  profilanswer
 

Ben tu peux faire qqchose du style :

Code :
  1. $allowed_image_extensions = array('jpg', 'jpeg', 'png', 'gif');
  2. if (in_array($extension, $allowed_image_extensions)) {
  3.   // Bonne extension
  4. }
  5. else {
  6.   // Mauvaise extension
  7. }


 
Sinon pour ta regexp, déjà a priori si tu veux dire jpg OU jpeg OU... gif il faut des parenthèses autour de jpg|jpeg|png|gif (rajoute "?:" en début de parenthèse si tu ne veux pas capturer celle-ci).
 
Ah et puis à ce que je sache, [\s\S] est équivalent à '.' (n'importe quel caractère).


Message édité par sielfried le 08-05-2006 à 00:49:29

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1361545
Hermes le ​Messager
Breton Quiétiste
Posté le 08-05-2006 à 09:53:06  profilanswer
 

PleT a écrit :

Merci, mais le problème est que ce soit limité aux images, et avec l'utilisation de preg_match (devoir a rendre et je trouve pas la solution :cry: )
 
Mais merci pour l'astuce, ça me servira tantôt  :D


 
Dis à ton prof que c'est un mongole et qu'on utilise pas preg_match pour ça. C'est quoi ce devoir débile franchement... C'est pas les utilisations justifiées des expreg qui manquent pourtant.  :heink:  
 
Sinon la soluce de sielfried est bonne sauf que c'est '.jpg', '.gif' etc... qu'il faut chercher. [:petrus75]

n°1361557
sielfried
Posté le 08-05-2006 à 10:23:45  profilanswer
 

Hermes le Messager a écrit :


Sinon la soluce de sielfried est bonne sauf que c'est '.jpg', '.gif' etc... qu'il faut chercher. [:petrus75]


 
Il me semble que pathinfo renvoie l'extension sans le point. [:figti]


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1361558
Hermes le ​Messager
Breton Quiétiste
Posté le 08-05-2006 à 10:29:10  profilanswer
 

sielfried a écrit :

Il me semble que pathinfo renvoie l'extension sans le point. [:figti]


Relis le sujet.
 
Il veut chopper le nom complet des files et afficher l'extension.  :o  
 
Sinon, évidemment qu'il peut chopper directement l'extension.  :D

n°1361560
Hermes le ​Messager
Breton Quiétiste
Posté le 08-05-2006 à 10:36:14  profilanswer
 

De toutes manières : list($width, $height, $type, $attr) = getimagesize("img/flag.jpg" );

n°1361561
sielfried
Posté le 08-05-2006 à 10:37:12  profilanswer
 

Ben le nom complet il l'a direct dans $_POST['image'] a priori, y'a pas à le chopper. [:autobot]  
 
Bon j'ai dû louper un truc, bref. :o (il est super tôt là, je suis pas réveillé [:dawa])


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1361671
PleT
Posté le 08-05-2006 à 13:45:58  profilanswer
 

Oui le nom complet je l'ai, mais le probleme c'est que je dois faire ça avec un preg_*  :(  
 
Sinon le code marche, mais pour seulement 3 des extensions, celle qui est placée en premier dans la chaine ne fonctionne pas.  :sweat:  
 
Et quand je mets des parenthèses comme ca :
 

Code :
  1. $chaine2 = "/^\.+(jpg|jpeg|gif|png)$/i";


ou

Code :
  1. $chaine2 = "/^\.+?:(jpg|jpeg|gif|png)$/i";


ou

Code :
  1. $chaine2 = "/^\.+?\(jpg|jpeg|gif|png)$/i";


ou

Code :
  1. $chaine2 = "/^\.+?(jpg|jpeg|gif|png)$/i";


 
rien ne marche  :sweat:

mood
Publicité
Posté le 08-05-2006 à 13:45:58  profilanswer
 

n°1361767
sielfried
Posté le 08-05-2006 à 15:03:57  profilanswer
 

Code :
  1. $pattern = '#\.(jpe?g|gif|png)$#i';
  2.  
  3. if (preg_match($pattern, $image, $matches) == 1)    {  
  4.     $extension = $matches[1];
  5.     echo 'Votre image a pour extension ' . strtolower($extension) . '.';    
  6. }    
  7. else {
  8.     echo 'Votre image n\'a pas d\'extension connue.';
  9. }


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1362013
PleT
Posté le 08-05-2006 à 21:16:44  profilanswer
 

Merci beaucoup!! Ca marche c'est magnifique je sais pas pourquoi j'ai voulu compliquer, c'est toujours ce qu'il y a de plus simple qui marche  [:dawa]  
Merci encore :jap:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  problème d'affichage avec preg_match

 

Sujets relatifs
Probleme affiche de mon site sous FireFoxproblème de bouton...
affichage d'une page dans case de tableauProblème pour envoyer un mail (JavaMail)
Problème avec les packages...(PASCAL) Rotation d'un volume, big probleme!!!
Problème d'hébergement chez Free [Résolu][VB6] Problème de chargement fichier XML avec DTD
Problème avec mon menu en cssProbleme de validation
Plus de sujets relatifs à : problème d'affichage avec preg_match


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR