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

  FORUM HardWare.fr
  Programmation
  PHP

  regex,: detecter un espace

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

regex,: detecter un espace

n°571595
forummp3
@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@
Posté le 20-11-2003 à 14:26:37  profilanswer
 

salut, voila mon probleme c'est que je veux detecter un espace et le remplacer par  .
j'aurais pu utiliser str_replace, mais le probleme c'est que je veux seulement les espaces entre deux balise:
 

Code :
  1. "/\[fixe\](.+?)([ ])(.+?)\[\/fixe\]/si",


 mais apparement ca marche pas.
 
est ce vous voyez une solution qui marche ?


Message édité par forummp3 le 20-11-2003 à 14:28:44

---------------
lecteur mp3 yvele's smilies jeux de fille
mood
Publicité
Posté le 20-11-2003 à 14:26:37  profilanswer
 

n°571648
arsunik
ma tuxitude me beastifie
Posté le 20-11-2003 à 15:19:26  profilanswer
 

(.+?) va matcher ton espace.
Il faudrait mettre ([^\n ]+?) ou quelque chose du genre.

n°571649
Freekill
Electron libre…
Posté le 20-11-2003 à 15:21:11  profilanswer
 

Pourquoi tu n'entoures pas simplement ton texte "fixe" de balises <pre> ?


---------------
Faux & usage de faux ¤ Machins roses ¤ ASCIImage ¤ HFR Enhance v0.8.6
n°571651
forummp3
@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@
Posté le 20-11-2003 à 15:23:18  profilanswer
 

Freekill a écrit :

Pourquoi tu n'entoures pas simplement ton texte "fixe" de balises <pre> ?

parce qu'il prend en compte les retour chariot (j'ai deja mis le <br /> ), et de plus ca change de font.


---------------
lecteur mp3 yvele's smilies jeux de fille
n°571655
Freekill
Electron libre…
Posté le 20-11-2003 à 15:29:04  profilanswer
 

forummp3 a écrit :

parce qu'il prend en compte les retour chariot (j'ai deja mis le <br /> ), et de plus ca change de font.
 


 
Le traitement des balises "fixe" est assez pénible, j'ai mis du temps à l'implémenter.
 
Ma solution a été de les retirer du message avant le traitement (smilies, balises, etc.), de les traiter à part et de les réinjecter dedans à la fin.
 

Code :
  1. $text = $message;
  2. // Trouve les balises code
  3. $codes = "";
  4. preg_match_all("/(\[pre\])(.+?)(\[\/pre\])/si",$text,$codes);
  5. $codes = $codes[2];
  6. //traite le message
  7. (...)
  8. // Spécial pour les balises code
  9. if (is_array($codes))
  10. {
  11. foreach($codes as $this)
  12. {
  13.  $text = preg_replace("/(\[pre\])(.+?)(\[\/pre\])/si","<table width=\"90%\" align=\"center\"><tr><td class=\"sml\"><b>Code:</b></td></tr><tr><td class=\"code\"><pre>".$this."</pre></td></tr></table>",$text,1);
  14. }
  15. }


 
(changer le contenu du foreach selon ce que tu veux faire)
 
J'espère que ça t'aidera...


Message édité par Freekill le 20-11-2003 à 15:29:49

---------------
Faux & usage de faux ¤ Machins roses ¤ ASCIImage ¤ HFR Enhance v0.8.6
n°571665
Freekill
Electron libre…
Posté le 20-11-2003 à 15:42:16  profilanswer
 

Hmmm, je ne sais pas si je suis clair.
 
En fait il ne les "retire" pas du message, il en fait plutôt une sorte de sauvegarde dans un array.
 
Ensuite il traite le contenu de cet array et réinjecte le tout à la place de ce qui a été traité comme du texte "normal" (smilies et tout le tralala), ce que l'on ne souhaite pas pour le contenu des balises code.


---------------
Faux & usage de faux ¤ Machins roses ¤ ASCIImage ¤ HFR Enhance v0.8.6
n°571673
forummp3
@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@
Posté le 20-11-2003 à 15:48:34  profilanswer
 

finallement j'ai reussi,je met la fonction en entier, ca sera plus facile a comprendre:
 

Code :
  1. function ubbcode($reponse)
  2. {
  3. ///////////creation du code html//////////////////////
  4. $search = array(
  5. "/\[img\](http|https|ftp|mms)\:\/\/(\S+)\[\/img\]/si",
  6. "/\[center\](.+?)\[\/center\]/si",
  7. "/\[left\](.+?)\[\/left\]/si",
  8. "/\[right\](.+?)\[\/right\]/si",
  9. "/\[justify\](.+?)\[\/justify\]/si",
  10. "/\[g\](.+?)\[\/g\]/si",
  11. "/\[i\](.+?)\[\/i\]/si",
  12. "/\[s\](.+?)\[\/s\]/si",
  13. "/\[\*\](.+?)\n/si",
  14. "/\[url=(http|https|ftp|mms)\:\/\/(.+?)\](.+?)\[\/url\]/si",
  15. "/\[url=(\S+)\](.+?)\[\/url\]/si",
  16. "/\[url\](.+?)\[\/url\]/si",
  17. "/\[fixe\](.*)([ ])(.*)\[\/fixe\]/si",
  18. "/(^|\s)(http|https|ftp|mms)\:\/\/([^ !\'\"\(\)\[\]\r\n ]+)/i",
  19. "/(^|\s)www\.([^ !\'\"\(\)\[\]\r\n]+)/i"
  20. );
  21.  $teste= preg_replace($search[12],"\\1&nbsp;\\3",$reponse);
  22. $teste=str_replace(" ","&nbsp;",$teste);
  23. $replace = array(
  24. " <img src=\"\\1://\\2\" alt=\"\\1://\\2\" border=\"0\" title=\"\\1://\\2\" /> ",
  25. "<div align=\"center\">\\1</div>",
  26. "<div align=\"left\">\\1</div>",
  27. "<div align=\"right\">\\1</div>",
  28. "<div align=\"justify\">\\1</div>",
  29. "<b>\\1</b>",
  30. "<i>\\1</i>",
  31. "<u>\\1</u>",
  32. "<div><ul class=\"bleu\"><li>\\1</li><ul></div>",
  33. "<a href=\"\\1://\\2\" target=\"_blank\" >\\3</a>",
  34. "<a href=\"http://\\1\" target=\"_blank\" >\\2</a>",
  35. "<a href=\"\\1\" target=\"_blank\" >\\1</a>",
  36. "$teste",
  37. "<a href=\"\\2://\\3\" target=\"_blank\" class=\"lientopic2\">\\2://\\3</a>",
  38. "<a href=\"http://www.\\2\" target=\"_blank\" class=\"lientopic2\">www.\\2</a>"
  39. );
  40. //----------|  remplacement des expression regulieres |---------//
  41. $reponse = preg_replace($search, $replace, $reponse);
  42. $reponse=str_replace("\n"," <br />\n ",$reponse);
  43. //----------| fin remplacement |-----------------//  
  44. return $reponse;
  45. }


---------------
lecteur mp3 yvele's smilies jeux de fille
n°571674
forummp3
@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@
Posté le 20-11-2003 à 15:49:00  profilanswer
 

c'est cette partie:
 

Code :
  1. $teste= preg_replace($search[12],"\\1&nbsp;\\3",$reponse);
  2. $teste=str_replace(" ","&nbsp;",$teste);


---------------
lecteur mp3 yvele's smilies jeux de fille
n°571676
Freekill
Electron libre…
Posté le 20-11-2003 à 15:51:37  profilanswer
 

Ouais, mais tu auras quand même des smiles et autres crasses dans tes balises "code" avec ça? :D
 
Mais bon, peut-être que ce n'est pas grave pour tes "fixe" ?


---------------
Faux & usage de faux ¤ Machins roses ¤ ASCIImage ¤ HFR Enhance v0.8.6
n°571691
forummp3
@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@
Posté le 20-11-2003 à 16:09:32  profilanswer
 

Freekill a écrit :

Ouais, mais tu auras quand même des smiles et autres crasses dans tes balises "code" avec ça? :D
 
Mais bon, peut-être que ce n'est pas grave pour tes "fixe" ?

Oui parce que je voulais seulement des balises qui me permette de mettre des espaces insecables.


---------------
lecteur mp3 yvele's smilies jeux de fille
mood
Publicité
Posté le 20-11-2003 à 16:09:32  profilanswer
 

n°571694
Profil sup​primé
Posté le 20-11-2003 à 16:10:17  answer
 

respect pour les regex.
j'y comprend jamais rien et le max je que fait c'est ^[a-zA-Z0-9_.-]+@[a-zA-Z0-9_.-]+.[a-zA-Z]+$ [:dawa]

n°572864
forummp3
@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@
Posté le 21-11-2003 à 20:33:10  profilanswer
 

Merci freekill, finallement j'ai pris ton script car le miens ne marchais pas correctement :jap:


Message édité par forummp3 le 21-11-2003 à 20:33:22

---------------
lecteur mp3 yvele's smilies jeux de fille

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

  regex,: detecter un espace

 

Sujets relatifs
Pb avec un RegEx[VB .NET] Détecter un double clic dans une textbox
[Win32] detecter enter dans une edit_box[PHP] Voir l'espace disque restant
[resolu] Login et espace membre avec un cookie ?Detecter la modification d'un fichier
[css] Double espace entre les motsStringTokenizer et espace
[resolu] espace dans un chemin de fichier[JAVA] regex (Pattern) : pb synthaxe pour 'split'
Plus de sujets relatifs à : regex,: detecter un espace


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