pb avec ereg - PHP - Programmation
Marsh Posté le 12-08-2004 à 00:30:38
alors deja fo faire
$image=ereg("^[IMG](.*)[\IMG]$",$msg,$lol);
sinon
http://www.asp-php.net/tutorial/asp-php/regexp.php
Marsh Posté le 12-08-2004 à 00:34:30
$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?
Marsh Posté le 12-08-2004 à 12:01:23
Faut échapper les crochets vu que ça indique un intervalle dans les expressions rationnelles, t'as aussi inversé ton / par rapport à la question :
Code :
|
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
Marsh Posté le 12-08-2004 à 12:15:28
ok, donc j'étais pas si mal parti
il faut vraiment que je potasse, ca a l'air puissant ces trucs
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 :
|
on obtient :
Code :
|
désolé de pas avoir été précis
Marsh Posté le 12-08-2004 à 13:09:56
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
Marsh Posté le 12-08-2004 à 13:13:33
oui je pense aussi que c'est du bol, je vais éssayer de chercher de mon coté
Marsh Posté le 12-08-2004 à 13:23:54
$a=explode("[/IMG]",$msg);
$t=0;
while(ereg("(.+)\[IMG\](.+)",$a[$t],$lol)){
echo $lol[2]."<br>";
$t++;
}
Marsh Posté le 12-08-2004 à 13:28:29
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
Marsh Posté le 12-08-2004 à 14:22:39
salut,
bon lunarnet76 ton script marche niquel, quand je fais ca :
Code :
|
j'obtiens ca :
Code : |
-> c'est niquel.
seulement je vais chercher $message dans une base mysql et la ca merde, je comprends pas
mon code :
Code :
|
je galere depuis un ptit moment, merci
Marsh Posté le 12-08-2004 à 14:34:09
euh while ($data=mysqli_fetch_array($req,MYSQLI_ASSOC))
c while ($data=mysql_fetch_array($req,MYSQLI_ASSOC)) au cas ou!!!
Marsh Posté le 12-08-2004 à 14:35:39
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++
Marsh Posté le 12-08-2004 à 14:41:15
$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!!!
Marsh Posté le 12-08-2004 à 14:56:14
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
++
EDIT: a 1ere vu nos 2 requete font la meme chosen mais j'éssaierai quand même
Marsh Posté le 12-08-2004 à 15:10:14
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
Marsh Posté le 12-08-2004 à 16:00:53
alors c'est :
while(ereg("(.*
au début: + ca demande au moins 1 caractère.
Marsh Posté le 12-08-2004 à 16:05:09
ah ok!!! ben on en apprend tous les jours sur cette fonction!!!
Marsh Posté le 12-08-2004 à 00:14:47
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
marci ++