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

  FORUM HardWare.fr
  Programmation
  PHP

  pb avec ereg

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

pb avec ereg

n°820991
$man
Posté le 12-08-2004 à 00:14:47  profilanswer
 

salut,
je veux récupéré ce qui se trouve entre mes balise [IMG][/IMG] masi j'y arrive pas. Je pense que c'est un pb de / mais je ne sais pas ou les mettre.
SI vous avez une bonne doc sur les expressions régulieres je suis ok

Code :
  1. $image=ereg("[IMG](.*)[\IMG]",$msg,$lol);


marci ++

mood
Publicité
Posté le 12-08-2004 à 00:14:47  profilanswer
 

n°821001
lunarnet76
Posté le 12-08-2004 à 00:30:38  profilanswer
 

alors deja fo faire  
$image=ereg("^[IMG](.*)[\IMG]$",$msg,$lol);
sinon
 
http://www.asp-php.net/tutorial/asp-php/regexp.php

n°821002
lunarnet76
Posté le 12-08-2004 à 00:34:30  profilanswer
 

$image=ereg("^\[(IMG)\](.+)\[.(IMG)\]$",$msg,$lol);
echo $lol[2];
mais ca pose probleme car j utilise . pour signaler le \ ... si quelqu'un sait comment on fait?
 :bounce:  :bounce:  :bounce:


Message édité par lunarnet76 le 12-08-2004 à 00:41:20
n°821014
$man
Posté le 12-08-2004 à 00:54:59  profilanswer
 

merci,
je vais voir le lien
++

n°821263
$man
Posté le 12-08-2004 à 11:44:34  profilanswer
 

j'ai éssayé ta solution mais ca ne marche pas
+

n°821288
gubug
Posté le 12-08-2004 à 12:01:23  profilanswer
 

Faut échapper les crochets vu que ça indique un intervalle dans les expressions rationnelles, t'as aussi inversé ton / par rapport à la question :

Code :
  1. $msg = "blabla blabla http://ici.com/img.jpg blabla.";
  2. $image = ereg("\[IMG\](.*)\[/IMG\]",$msg , $lol);
  3. print_r ($lol);
  4. // affiche :
  5. Array (
  6. [0] => http://ici.com/img.jpg
  7. [1] => http://ici.com/img.jpg
  8. )


 
mettre ^ et $ indique que tu ne doit trouver qqch QUE si la chaine commence impérativement par [IMG] et fini par [/IMG] ce qui je suppose ne sera pas souvent le cas :)

n°821316
$man
Posté le 12-08-2004 à 12:15:28  profilanswer
 

ok, donc j'étais pas si mal parti :)
il faut vraiment que je potasse, ca a l'air puissant ces trucs :o
marci
 
EDIT: en fait j'étais arrivé a ce résultat (visiblement les \ manquante ne génait pas, mais la avec j'ai toujours le meme probleme avec un message de ce type :

Code :
  1. $msg="salut http://ymerejsan.free.fr/dream.JPG toto [IMG]http://ymerejsan.free.fr/dream.JPG[[/IMG]";


on obtient :  

Code :
  1. http://ymerejsan.free.fr/dream.JPG[/IMG] toto [IMG]lol.jpg


désolé de pas avoir été précis


Message édité par $man le 12-08-2004 à 12:19:40
n°821378
gubug
Posté le 12-08-2004 à 13:09:56  profilanswer
 

Ca vient du fait que '.' mange tout, y compris [/IMG] qui est le fin qu'on voudrait...
il faut donc lui dire de capturer tout SAUF [/IMG], je pensais m'en sortir avec (^\[/IMG\]) mais il veut rien savoir :/
 
Pour en revenir au \ à mon AMHA c'était du bol parce que [IMG] ca veut dire 'un des caractères I ou M ou G' ce qui est presque le cas ici

n°821383
$man
Posté le 12-08-2004 à 13:13:33  profilanswer
 

oui je pense aussi que c'est du bol, je vais éssayer de chercher de mon coté :)

n°821395
lunarnet76
Posté le 12-08-2004 à 13:23:54  profilanswer
 

$a=explode("[/IMG]",$msg);
$t=0;
while(ereg("(.+)\[IMG\](.+)",$a[$t],$lol)){
echo $lol[2]."<br>";
$t++;
}

mood
Publicité
Posté le 12-08-2004 à 13:23:54  profilanswer
 

n°821401
lunarnet76
Posté le 12-08-2004 à 13:28:29  profilanswer
 

gubug a écrit :

mettre ^ et $ indique que tu ne doit trouver qqch QUE si la chaine commence impérativement par [IMG] et fini par [/IMG] ce qui je suppose ne sera pas souvent le cas :)


merci !!! je n'avais pas compris!!! mais ca veut dire que y  a plein de fois ou j'ai abandonné pour rien  :ouch:  
 :bounce:  :bounce:  :bounce:

n°821468
$man
Posté le 12-08-2004 à 14:22:39  profilanswer
 

salut,
bon lunarnet76 ton script marche niquel, quand je fais ca :

Code :
  1. $message="salut http://ymerejsan.free.fr/dream.JPG [img]lol.jpg[/img]";
  2. $fin=explode("[/img]",$message);
  3. $i=0;
  4. while(ereg("(.+)\[img\](.+)",$fin[$i],$image))
  5. {
  6. echo $image[2]."<br>";
  7. $i++;
  8. }


j'obtiens ca :

Code :
  1. http://ymerejsan.free.fr/dream.JPG
  2. lol.jpg

-> c'est niquel.
seulement je vais chercher $message dans une base mysql et la ca merde, je comprends pas
mon code :

Code :
  1. function balise($message)
  2. {
  3. $fin=explode("[/img]",$message);
  4. $i=0;
  5. while(ereg("(.+)\[img\](.+)",$fin[$i],$image))
  6. {
  7. echo $image[2]."<br>";
  8. $i++;
  9. }
  10. }
  11. while ($data=mysqli_fetch_array($req,MYSQLI_ASSOC))
  12. {
  13. echo balise($data['message'])."<br>";
  14. }


 
je galere depuis un ptit moment, merci


Message édité par $man le 12-08-2004 à 14:27:14
n°821479
lunarnet76
Posté le 12-08-2004 à 14:34:09  profilanswer
 

euh while ($data=mysqli_fetch_array($req,MYSQLI_ASSOC))  
c while ($data=mysql_fetch_array($req,MYSQLI_ASSOC)) au cas ou!!!

n°821483
$man
Posté le 12-08-2004 à 14:35:39  profilanswer
 

coucou,
heu non sur mon hebergeur c'est bien ca lol, c'est d'ailleurs super relou.
On dirais que le script aime pas ce retrouvé dans le while, mais je saisa aps pourquoi :(
marci++

n°821490
lunarnet76
Posté le 12-08-2004 à 14:41:15  profilanswer
 


  $table=mysql_query("SELECT * FROM table_menu WHERE id=4" );
  while ($table && $info=mysql_fetch_array($table))
  {  
  $a=explode("[/IMG]",$info['nom']);
  $t=0;
  while(ereg("(.+)\[IMG\](.+)",$a[$t],$lol)){
  echo $lol[2]."<br>";
  $t++;
  }
  }
bon aprés fo ke tu mette ta propre requete dans mysql_query et que tu modifie pour ton hebergeur!!!

n°821512
$man
Posté le 12-08-2004 à 14:56:14  profilanswer
 

merci, mais j'ai pas trop le choix de l'hébergement, je vois ca après je fais une pause je suis claqué lol. l'informatique c'est fatiguant :o
++
 
EDIT: a 1ere vu nos 2 requete font la meme chosen mais j'éssaierai quand même


Message édité par $man le 12-08-2004 à 14:58:07
n°821531
$man
Posté le 12-08-2004 à 15:10:14  profilanswer
 

re,
bon j'ai regardé un peu et en fait le pb vient pas de mysql mais de la fonction reguliere. en effet s'il n'y a rien devant [img] ca ne marche pas
merci

n°821606
gubug
Posté le 12-08-2004 à 16:00:53  profilanswer
 

alors c'est :
while(ereg("(.*
au début: + ca demande au moins 1 caractère.

n°821612
lunarnet76
Posté le 12-08-2004 à 16:05:09  profilanswer
 

ah ok!!! ben on en apprend tous les jours sur cette fonction!!!

n°821710
$man
Posté le 12-08-2004 à 17:35:14  profilanswer
 

+1


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

  pb avec ereg

 

Sujets relatifs
[php] - Help avec fonction ereg() toujour et encore incompréhensible[PHP] - ereg() toujours flou dans ma tete -> RESOLU
ereg[PHP] - Help avec ereg()
[PHP] ereg et pattern[PHP] placé le resultat d'un ereg() dans une variable...
[php] Qqun pour me filer un coup de main avec ereg?Y-a-til un équivalent string_replace ou ereg_replace en C++ ?
faire des liens à partir d'une url > dernier pb avec ereg :(PHP : ereg
Plus de sujets relatifs à : pb avec ereg


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)