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

  FORUM HardWare.fr
  Programmation

  [php] probleme classique de forum : pros des regexp demandés!

 



 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

[php] probleme classique de forum : pros des regexp demandés!

n°73594
sisicaivra​i
Life is Beautifullll
Posté le 19-11-2001 à 18:16:26  profilanswer
 

comment faire pour découper un message pour ne pas foutre en l'air toute la mise en page des tableaux, quand l'auteur omet de mettre des espaces (le salaud :D)
 
y a rien d'autre que de compter et insérer des sauts de lignes tous les X caractères?

 

[edtdd]--Message édité par sisicaivrai--[/edtdd]

mood
Publicité
Posté le 19-11-2001 à 18:16:26  profilanswer
 

n°73597
sisicaivra​i
Life is Beautifullll
Posté le 19-11-2001 à 18:22:19  profilanswer
 

doit y a voir moyen, ici ils le font, non?
 
lalalalalalalalalalalalalalalalalalalalalalalalala
 
lalalalalalalalalalalalalalalalalalalalalalalalala
 
lalalalalalalalalalalalalalalalalalalalalalalalala
 
lalalalalalalalalalalalalalalalalalalalalalalalala
 
lalalalalalalalalalalalalalalalalalalalalalalalala
 
lalalalalalalalalalalalalalalalalalalalalalalalala
 
lalalalalalalalalalalalalalalalalalalalalalalalala
 
lalalalalalalalalalalalalalalalalalalalalalalalala
 
lalalalalalalalalalalalalalalalalalalalalalalalala
 
lalalalalalalalalalalalalalalalalalalalalalalalala
 
lalalalalalalalalalalalalalalalalalalalalalalalala
 
lalalalalalalalalalalalalalalalalalalalalalalalala
 
 
oui

 

[edtdd]--Message édité par sisicaivrai--[/edtdd]

n°73599
youdontcar​e
Posté le 19-11-2001 à 18:24:40  profilanswer
 

sous ie, tu peux rajouter dans le style de la table word-break: break-all; qui fera le break automatiquement.
 
sinon en CSS2 y'a table-layout: fixed qui, associé à une table ayant une largeur spécifiée (width='600' par ex) gardera cette largeur quelles que soient les longueurs des mots.
 
tu peux combiner les deux.

 

[edtdd]--Message édité par youdontcare--[/edtdd]

n°73602
sisicaivra​i
Life is Beautifullll
Posté le 19-11-2001 à 18:29:44  profilanswer
 

thx  :jap:  je test ca :)

n°73852
akathaa
Posté le 20-11-2001 à 15:24:36  profilanswer
 

et y aurait pas un truc pour que ça coupe pas les mots qui sont en bout de ligne mais ki sont assez court kan même hein?? :??:  
 
je sais pas si c comprehensible tout ça  :sol:

n°73860
Sh@rdar
Ex-PhPéteur
Posté le 20-11-2001 à 15:42:50  profilanswer
 

avec une expression régulière tu ajoute un espace (ou un <br> ) si jamais plus de X caractère se suivent sans trou.
 
$Texte = eregi_replace("([a-z0-9]{40})","\\1<br>",$Texte) ;  
 
ça marche pas trop mal..


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
n°73863
akathaa
Posté le 20-11-2001 à 15:50:29  profilanswer
 

:jap:  vais essayer ça

n°74545
sisicaivra​i
Life is Beautifullll
Posté le 22-11-2001 à 19:17:30  profilanswer
 

Sh@rdar a écrit a écrit :

avec une expression régulière tu ajoute un espace (ou un <br> ) si jamais plus de X caractère se suivent sans trou.
 
$Texte = eregi_replace("([a-z0-9]{40})","\\1<br>",$Texte) ;  
 
ça marche pas trop mal..  




 :jap:  
c bien, mais ca ne prend pas les special chars... comment faire dans l'autre sens (je suis pas loin en regexp)
cad remplacer une suite de 40 * TOUT sauf espace ?
 
[^ ]  ??

 

[edtdd]--Message édité par sisicaivrai--[/edtdd]

n°74547
sisicaivra​i
Life is Beautifullll
Posté le 22-11-2001 à 19:26:28  profilanswer
 

$texte = eregi_replace("([^ ]{50})","\\1<br>",$texte);
 ca marche nickel mais j'ai du changer d'autres expressions régulières que je faisais...

 

[edtdd]--Message édité par sisicaivrai--[/edtdd]

n°74558
sisicaivra​i
Life is Beautifullll
Posté le 22-11-2001 à 19:55:33  profilanswer
 

... avec ca comment faire pour pas qu'il remplace les http:// , ftp:// et <img src..
 
 :jap:
test:
 
http://aaaaaaaaaaaaaaaaaaaaaaaaaaa [...] aaaaaaaaaa
 
ah bah vi, ca marche :D
 
c sans solution ce probleme

 

[edtdd]--Message édité par sisicaivrai--[/edtdd]

mood
Publicité
Posté le 22-11-2001 à 19:55:33  profilanswer
 

n°74560
skylight
Made in France.
Posté le 22-11-2001 à 20:02:42  profilanswer
 

tiens chui gentil je te donne ceux de mon forum
 
 $texte = preg_replace("/\[b\](.*?)\[\/b\]/si", "<B>\\1</B>", $texte);
  $texte = preg_replace("/\[i\](.*?)\[\/i\]/si", "<I>\\1</I>", $texte);
 $texte = preg_replace("/\[img\](.*?)\[\/img\]/si", "<IMG SRC=\"\\1\" BORDER=\"0\">", $texte);
 $texte = preg_replace("/\[url\](.*?)\[\/url\]/si", "<a href=\"\\1\" target=\"_blank\" class=titre>\\1</a>", $texte);

n°74562
skylight
Made in France.
Posté le 22-11-2001 à 20:07:17  profilanswer
 

par contre moi la cassure des longs mots me casse aussi les posts normaux ... :(

n°74574
sisicaivra​i
Life is Beautifullll
Posté le 22-11-2001 à 20:28:41  profilanswer
 

skylight a écrit a écrit :

tiens chui gentil je te donne ceux de mon forum
 
 $texte = preg_replace("/\[b\](.*?)\[\/b\]/si", "<B>\\1</B>", $texte);
  $texte = preg_replace("/\[i\](.*?)\[\/i\]/si", "<I>\\1</I>", $texte);
 $texte = preg_replace("/\[img\](.*?)\[\/img\]/si", "<IMG SRC=\"\\1\" BORDER=\"0\">", $texte);
 $texte = preg_replace("/\[url\](.*?)\[\/url\]/si", "<a href=\"\\1\" target=\"_blank\" class=titre>\\1</a>", $texte);  




mais la cassure la dedans???
les http, ftp, img, soulignes, gras, italiques j'ai déjà ;)

 

[edtdd]--Message édité par sisicaivrai--[/edtdd]

n°74576
skylight
Made in France.
Posté le 22-11-2001 à 20:34:26  profilanswer
 

sisicaivrai a écrit a écrit :

... avec ca comment faire pour pas qu'il remplace les http:// , ftp:// et <img src..
 
 :jap:  




 
 
 
opps j'avai pas vu ca :)

n°74577
skylight
Made in France.
Posté le 22-11-2001 à 20:35:39  profilanswer
 

d'ailleurs c koi la différence entre preg et ereg(i) ?

n°74580
sisicaivra​i
Life is Beautifullll
Posté le 22-11-2001 à 20:42:02  profilanswer
 

- string ereg_replace (string pattern, string replacement, string string)
 
ereg_replace() effectue une recherche par expression régulière dans la chaîne string en recherchant les occurrences de pattern, puis les remplace par la chaîne replacement.  
 
 
-mixed preg_replace (mixed pattern, mixed replacement, mixed subject [, int limit])
 
preg_replace() analyse subject pour trouver l'expression pattern et remplace les résultats par replacement.  
 
preg_replace n'est donc pas une fonction par expression régulière "au sens 1er du terme"  
 
mais chais pas si pour les utilisateurs ca change bcp...

 

[edtdd]--Message édité par sisicaivrai--[/edtdd]

n°74590
gizmo
Posté le 22-11-2001 à 21:02:10  profilanswer
 

Waouw, vous pouvez pas savoir comment je suis content! grace a vous je viens de découvrir qu'on peux utiliser les expressions régulières Perl sous php et pas se contenter de cette merde de POSIX. Ca va grandement me facilité la tache :D
 
 :jap:  :jap:  :jap:

n°74593
sisicaivra​i
Life is Beautifullll
Posté le 22-11-2001 à 21:06:21  profilanswer
 

gizmo a écrit a écrit :

Waouw, vous pouvez pas savoir comment je suis content! grace a vous je viens de découvrir qu'on peux utiliser les expressions régulières Perl sous php et pas se contenter de cette merde de POSIX. Ca va grandement me facilité la tache :D
 
 :jap:  :jap:  :jap:  




c'était avec plaisir  :sol:  
 
un dernier pour la route:
http://aaaaaaaaaaaaaaaaaaaaaaaaaaa [...] aaaaaaaaaa
 
:D

n°74598
gizmo
Posté le 22-11-2001 à 21:19:18  profilanswer
 

par contre j'ai quand même une question, skykigth, il sert a quoi le "s" dans /si ? le i je connais, comme le e ou le g, mais le s j'ai jamais vu.

n°74606
skylight
Made in France.
Posté le 22-11-2001 à 21:53:12  profilanswer
 
n°74625
gizmo
Posté le 22-11-2001 à 22:15:13  profilanswer
 

non, j'ai trouvé, c'est le s que je mettais d'habitude au début, c'est pour considerer le texte comme une seule ligne et forcer le "." a être n'importe quel char. mais je savais pas qu'on pouvait le mettre en fin d'expression.

n°74628
sisicaivra​i
Life is Beautifullll
Posté le 22-11-2001 à 22:16:42  profilanswer
 

j'ai une question:
j'ai un char avec du htmlentities dedans, si je fais un echo, c ok, mais si j'envoie un mail avec le texte dedans -> affichage des codes. Comment l'en empecher?

n°74655
skylight
Made in France.
Posté le 22-11-2001 à 22:48:48  profilanswer
 

sisicaivrai a écrit a écrit :

j'ai une question:
j'ai un char avec du htmlentities dedans, si je fais un echo, c ok, mais si j'envoie un mail avec le texte dedans -> affichage des codes. Comment l'en empecher?  




 
pardon ?
ou sinon tu créé une 2° variable auquel tu fais un coup de htmlspecialchar() ... ?
 
sinon g pa compris la question :D

n°74656
skylight
Made in France.
Posté le 22-11-2001 à 22:50:06  profilanswer
 

par contre g un pb avec mon forum
 
http://e-sky.dyndns.org/forum/foru [...] nfig=forum
 
regardez, a un moment je poste un lien. et c'est pas le bon texte qui est affiché.. suffit de cliquer sur "EDIT" pour voir le vrai lien que g mis
 
je comprend pas sur ce coup :??:
pourtant j'utilise les expr reg que g cité ci dessus.

n°74660
Sh@rdar
Ex-PhPéteur
Posté le 22-11-2001 à 22:55:07  profilanswer
 

à cause de ça : cla<br>ss=titre> c'est de ma faut ma regexp déconne... faut perfectionner ce truc un peu sommaire (j'ai lancé ça comme ça moi  :D )


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
n°74662
Sh@rdar
Ex-PhPéteur
Posté le 22-11-2001 à 22:58:08  profilanswer
 

heu skylight tu pourrais me sortir ton code de regexp complet ?
 
à mon avis y a un prob au niveau de l'ordre (d'abord la cassure puis ensuite la tranformation en liens)
 
sinon faudrait modifier le bazar de manière à couper uniquement si y a pas de http:// ou www. devant (pour les url longues)


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
n°74664
sisicaivra​i
Life is Beautifullll
Posté le 22-11-2001 à 23:00:19  profilanswer
 

skylight a écrit a écrit :

 
 
pardon ?
ou sinon tu créé une 2° variable auquel tu fais un coup de htmlspecialchar() ... ?
 
sinon g pa compris la question :D  




exemple:
j'ai une var $titre avec dedans écrit "spécial"
si je fais un écho-> ok
si j'envoie un mail avec $titre dedans -> spécial

n°74666
gizmo
Posté le 22-11-2001 à 23:03:20  profilanswer
 

essaye en indiquant que le mail est au format html

n°74676
sisicaivra​i
Life is Beautifullll
Posté le 22-11-2001 à 23:21:44  profilanswer
 

gizmo a écrit a écrit :

essaye en indiquant que le mail est au format html  




 :jap: ca marche  :sol:

 

[edtdd]--Message édité par sisicaivrai--[/edtdd]

n°74682
gizmo
Posté le 23-11-2001 à 00:00:10  profilanswer
 

tant mieux.
 
Sinon j'ai une question: c'est moi qui fait une couille dans ma regexp ou bien preg_replace ne comprend pas l'attribut \b ?  
 
Parce que c'est la seule chose qui me résiste encore :sweat:

n°74898
skylight
Made in France.
Posté le 23-11-2001 à 17:03:23  profilanswer
 

Sh@rdar a écrit a écrit :

heu skylight tu pourrais me sortir ton code de regexp complet ?
 
à mon avis y a un prob au niveau de l'ordre (d'abord la cassure puis ensuite la tranformation en liens)
 
sinon faudrait modifier le bazar de manière à couper uniquement si y a pas de http:// ou www. devant (pour les url longues)  




 
 
ds l'ordre, (page forum2.php)
 

Code :
  1. $texte = ereg_replace("<","<",$texte);
  2. $texte = ereg_replace(">",">",$texte);
  3. $texte = preg_replace("(\n)","<br>",$texte);
  4. $texte = preg_replace("/\[b\](.*?)\[\/b\]/si", "<B>\\1</B>", $texte);
  5.  $texte = preg_replace("/\[i\](.*?)\[\/i\]/si", "<I>\\1</I>", $texte);
  6. $texte = preg_replace("/\[img\](.*?)\[\/img\]/si", "<IMG SRC=\"\\1\" BORDER=\"0\">", $texte);
  7. $texte = preg_replace("/\[url\](.*?)\[\/url\]/si", "<a href=\"\\1\" target=\"_blank\" class=titre>\\1</a>", $texte);
  8. $texte = str_replace(":eil:", "<IMG src=\"images/smileys/666.gif\">", $texte);
  9. [...]smileys
  10. $texte = str_replace(":innocent:", "<IMG src=\"images/smileys/innocent.gif\">", $texte);
  11. eregi_replace("([^.]{60})","\\1<br>",$texte);

 

[edtdd]--Message édité par skylight--[/edtdd]

n°74907
Sh@rdar
Ex-PhPéteur
Posté le 23-11-2001 à 17:12:36  profilanswer
 

ok tu devrais esasyer comme j'ai indiqué de mettre la cassure en first, sinon avec l'url plus le <a href...> ça fait vite 40-50 caractères et ça casse en plein milieu du lien..
 
gizmo j'en ai aucune idée j'utilise pas les regexp perl...


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
n°74908
skylight
Made in France.
Posté le 23-11-2001 à 17:16:25  profilanswer
 

mattez aussi le post en dessous du lien .. j'ai mis du texte normal, le pb c'est que ca fait trop zarb ds le tablo, je pige pa pkoi :(

n°74909
skylight
Made in France.
Posté le 23-11-2001 à 17:16:45  profilanswer
 

gizmo a écrit a écrit :

tant mieux.
 
Sinon j'ai une question: c'est moi qui fait une couille dans ma regexp ou bien preg_replace ne comprend pas l'attribut \b ?  
 
Parce que c'est la seule chose qui me résiste encore :sweat:  




il est censé faire koi ?

n°74912
gizmo
Posté le 23-11-2001 à 17:25:06  profilanswer
 

c'est censé limité la recherche aux mots commencant ou finissant exactement par l'expression. Mais c'est pas grave, j'ai trouvé la solution: je met un blanc au début de mon message et alors mes trucs marchent dans 95% des cas. (pour les autres connerie, je m'en fous :D)
 
Si vous vouler, je peux vous montrer mes regexp.

n°74915
skylight
Made in France.
Posté le 23-11-2001 à 17:39:15  profilanswer
 

pkoi pas, j'ai montré les miens.
apparement le bug du texte qui ne colle pas a pu se résoudre...

n°74917
gizmo
Posté le 23-11-2001 à 17:45:35  profilanswer
 

Code :
  1. $string=" $string";
  2. $search = array(
  3. "/</",
  4. "/>/",
  5. "/\[g\](.+?)\[\/g\]/si",
  6. "/\[i\](.+?)\[\/i\]/si",
  7. "/\[s\](.+?)\[\/s\]/si",
  8. "/\[img\](.+?)\[\/img\]/si",
  9. "/\[url\](http:\/\/|ftp:\/\/)(.+?)\[\/url]/i",
  10. "/\[url\](.+?)\[\/url]/i",
  11. "/\[url=(http:\/\/|ftp:\/\/)(.+?)\](.+?)\[\/url]/si",
  12. "/\[url=(.+?)\](.+?)\[\/url]/si",
  13. "/ (http:\/\/|ftp:\/\/)(\S+)/i",
  14. "/ (www)(\S+)/i",
  15. "/\[quote\]\s*(.+?)\[\/quote\]/si",
  16. "/  /",
  17. "/[a-z0-9:&;]{40}/i" );
  18. $replace = array(
  19. "<",
  20. ">",
  21. "<b>$1</b>",
  22. "<i>$1</i>",
  23. "<u>$1</u>",
  24. "<img src=\"$1\" border=0>",
  25. "<a href=\"$1$2\" target=\"_blank\" class=\"post\">$1$2</a>",
  26. "<a href=\"http://$1\" target=\"_blank\" class=\"post\">$1</a>",
  27. "<a href=\"$1$2\" target=\"_blank\" class=\"post\">$3</a>",
  28. "<a href=\"http://$1\" target=\"_blank\" class=\"post\">$2</a>",
  29. "<a href=\"$1$2\" target=\"_blank\" class=\"post\">$1$2</a>",
  30. "<a href=\"http://$1$2\" target=\"_blank\" class=\"post\">$1$2</a>",
  31. "<table width=\"75%\" class=\"post\"><tr><td><b>citation:</b><hr>$1<hr></td></tr></table>",
  32. "  ",
  33. "$0<br>" );
  34. $string = preg_replace($search,$replace,$string);
  35. $string=nl2br($string);

 

[edtdd]--Message édité par gizmo--[/edtdd]

n°74918
skylight
Made in France.
Posté le 23-11-2001 à 17:50:50  profilanswer
 

ca m'a l'air propre tout ca... :jap:
 
dit moi gizmo, t'utilise une fonction  
 
 
mais en php, il n'y a pas main() {}... donc comment faire des fonctions ?
car si je fais une fonction, le php va quand meme lire et executer la fonction, meme si je lui dis pas de la lire ?  :heink:

n°74919
skylight
Made in France.
Posté le 23-11-2001 à 17:53:39  profilanswer
 

ya un bug dans tes ereg .. :D
 
 
tape un long mot de <<<<<<<<<<<<<<<<>>>>>>>>>>>>><<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>><
 
 
ca le coupe pas.. j'essaie de voir pourquoi ...

n°74920
gizmo
Posté le 23-11-2001 à 17:54:38  profilanswer
 

non, les fonctions sont bien décrites par
 
function nom_de_la_fonction (arg1,arg2,...)
{
  retrun valeur (optionel)
}
 
et tu les appelles comme des fonctions classiques, autrement elles sont ignorées.

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

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

  [php] probleme classique de forum : pros des regexp demandés!

 

Sujets relatifs
Problème de Jet ....VB5 : probleme de taille avec le type CURRENCY
Probleme FSO et win 2k proMFC: Probleme !!!!
Probleme connection base sql de chez ifrance[PHP] Problème d'edition...
Problème c** en PHP 3 ! Help !Probleme VB : debutant
[YACC] problemequestion facile pour les pros du c
Plus de sujets relatifs à : [php] probleme classique de forum : pros des regexp demandés!


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