insertion de liens dans un forum?? utilisation de regexp ds page ASP!!

insertion de liens dans un forum?? utilisation de regexp ds page ASP!! - Programmation

Marsh Posté le 11-06-2001 à 10:34:28    

je réalise un forume et je voudrais que les utilistaeurs puissent mettre des liens dans leur texte
 
quelqu'un connaitrait-il un bon moyen pour réaliser ceci  
 
merci ,
 
NB: j'ai deja quelquechose qui marche mais c pas tres fiable  
j'aimerais avoir des suggestions SVP

 

[edit]--Message édité par saxgard--[/edit]

Reply

Marsh Posté le 11-06-2001 à 10:34:28   

Reply

Marsh Posté le 11-06-2001 à 10:37:10    

petite précision je réalise le forum en ASP (au cas ou c'est vraiment un renseignement utile)  :)

Reply

Marsh Posté le 11-06-2001 à 10:44:34    

Tu fais comme dans ce forum, t'inséres de part et d'autre de l'url des balises "maisons" [ta balise]url[/ta balise]. A l'étape de validation du post, tu traite le contenu (les Expressions régulières sont un bon moyen de traitement...)
 
ps : il existe des moyens plus sympas, mais incompatibles avec Netscape.  
 
Cf : http://www.cyberouest.fr/index.cfm [...] tion=modif

Reply

Marsh Posté le 11-06-2001 à 10:48:44    

alors c'est ce que je fais  , mais mon pb c'est que par exemple j'identifie  :url: par <a href="  
puis :/url: "> etc.....
mais si par exemple unutilistaeur modifie ce qui est ecrit.
ex ::/url: par :/ul: sans faire expret ou en faisant une fausse manip , tt est deformé ds ma mise en page ce qui est normal car l'instruction href ne ser pas fermé par ">
  :pt1cable:  
 
je sais , je suis surement pa strès clair  :)

Reply

Marsh Posté le 11-06-2001 à 10:59:16    

Si tu utilises des Expressions Régulières et que ton motif de chaîne est correctement défini, tu ne peux pas te retrouver avec un href "non fermé".
 
Evidement, si tu remplaces au coup par coup, cad que dès que tu vois un :url: tu le remplaces par un <a href="..., forcement s'il n'y a pas de :/url: cela va poser problème. L'intérêt des Regexp, c'est que tu remplaces d'un coup :url:blabla:/url: par la syntaxe html. Si la regex ne reconnait pas le bon motif (cas ou par exemple la balise de fin est :/ul:), alors elle ne remplacera pas ta chaine par la syntaxe html. Ton code ne sera alors pas cassé...
 
@+

 

[edit]--Message édité par fly LM--[/edit]

Reply

Marsh Posté le 11-06-2001 à 11:13:11    

merci fly
 
bin alors ma question va etre tte simple comment fait on des expressions regulières en code ca se présente comment et sous quel forme
 
j'en est deja fais en yacc et en le sous unix mais pas en asp vbscript ou autre
 
peu tu m'en dire un peu plus

Reply

Marsh Posté le 11-06-2001 à 11:25:28    

Bha non, je ne travaille quasi jamais en ASP, connait pas bien. D'ailleurs, ou tout départ, je n'avais pas vu que tu bossais en ASP.
 
Je ne sais vraiment pas si les Regex sont accessibles dans ton environement de programmation !!! Désolé, Faut maintenant faire appel à un PRO de l'ASP.

Reply

Marsh Posté le 11-06-2001 à 12:17:56    

bin merci fly ;)
 
mais tu travail en quoi toi les regex , pt qu'en VB ou javascript c apreil non?

Reply

Marsh Posté le 11-06-2001 à 14:13:59    

Je travaille avec PHP, il existe quelles fonctions utilisant les Regexp. En PHP, voilà une façon de traiter ton problème :
 
//---------------------------------------------
 
$var =":url:http://www.adresse.com:/url:";
 
$var_new = preg_replace("/^(:url:)(.*)(:\/url:)$/","<a href='\\2'>\\2</a>",$var);
 
//---------------------------------------------
 
Cette fonction (compatible PERL->syntaxe) permet de reconnaitre une expression dans la chaine $var suivant un motif particulier "/^(:url:)(.*)(:\/url:)$/" et de le remplacer par "<a href='\\2'>\\2</a>" ou \\2 une référence arrière correspondant à la seconde sous expression de ton motif ( -> (.*) ici http://www.adresse.com)
 
Les Regexp sont utilisables en javascript, mais je n'en connais pas la syntaxe.

 

[edit]--Message édité par fly LM--[/edit]

Reply

Marsh Posté le 11-06-2001 à 14:25:12    

merci fly d'essayer de me répondre le mieux que tu peux , tu ma déja bcp bcp aidé , mais c vrai que la mnt mon gros pb c'est en vb ou java pour integer ca ds mon site asp
 
dc si quelqu'un maitrise un peu l'asp et connais les regexp , qu'il le fasse savoir SVP  
 
cela dis fly je vais bien étudier tt ce que tu ma dis merci encore

Reply

Marsh Posté le 11-06-2001 à 14:25:12   

Reply

Marsh Posté le 11-06-2001 à 14:28:53    

j'ai trouvé ca (en VBscript) comme exemple qui est tres clair mais j'arrive  pas a l'implanter ds la page asp , ca ne marche pas  
 
Function RegExpTest(patrn, strng)
   Dim regEx, Match, Matches   ' Crée la variable.
   Set regEx = New RegExp   ' Crée une expression régulière.
   regEx.Pattern = patrn   ' Définit les critères.
   regEx.IgnoreCase = True   ' Ignore la casse.
   regEx.Global = True   ' Définit le champ d'application.
   Set Matches = regEx.Execute(strng)   ' Lance la recherche.
   For Each Match in Matches   'Itère la collection Matches.
      RetStr = RetStr & "Correspondance trouvée à la position "
      RetStr = RetStr & Match.FirstIndex & ". La valeur de la correspondance est '"
      RetStr = RetStr & Match.Value & "'." & vbCRLF
   Next
   RegExpTest = RetStr
End Function
MsgBox(RegExpTest("is.", "IS1 is2 IS3 is4" ))

Reply

Marsh Posté le 11-06-2001 à 16:00:34    

saxgard -> ton code semble correct, t'as quoi comme erreur ?
L'objet RegExp semble disponible qu'en asp 3.
En tout cas, je l'utilise sans pb...

Reply

Marsh Posté le 11-06-2001 à 16:02:26    

ah seb tu tombe bien  
 :)  
 
ca me marque  
Microsoft VBScript compilation error '800a03ea'  
 
Syntax error  
 
/CRT/Analytique/Replies.asp, line 50  
 
Set regEx = New RegExp  ' Crée une expression régulière.

Reply

Marsh Posté le 11-06-2001 à 16:05:57    

en gros je sais pas trop comment déclaré mon objet, le new ne marche pas en asp
 
je pense que c avc create object mais je suis pas sur , je m'y perd un peu  
j'avais pensé a un truc comme ca:
Set RegEx = Server.CreateObject("Scripting.RegExp" )
 
 
mais bon moi etre un peu perdu sur ce coup la lol

Reply

Marsh Posté le 11-06-2001 à 16:09:23    

Seb si ta un exemple et que tu peut me l'envoyer par mail ca serai drolement sympas ;)
 
un truc simple qui marche avc une expresion régulière pas trop trop compliqué intégréds une page ASP  ;)

Reply

Marsh Posté le 11-06-2001 à 16:20:36    

Bah normallement il faut faire un
Set regEx = New RegExp pour creer une instance de l'obj
Moi, ca tourne ss pb !!!
T'as quelle version d'ASP ???
Apres tu charche la prop pattern :
regEx.Pattern = "^[0-9]*&" par exemple
Puis tu utilise une des methodes : Execute, Test ou Replace

Reply

Marsh Posté le 12-06-2001 à 08:39:01    

bin ca marche pas , et je ne sais pas qu'elle version j'ai d'asp
 
dois-je mettre  
Set regEx = New RegExp ds le bloc <%%>
 
oui dois-je  le mettre ds
<SCRIPT LANGUAGE="VBScript">
</SCRIPT>
 
es-ce qu'il ya une difference ds la reconaissance de la declaration des objects en fonction de l'endroit ou on le déclare!!!
je sais ma question peut paraitre stupide mais sur ce coup la je bloque un peu  ;)

Reply

Marsh Posté le 12-06-2001 à 09:37:20    

Pour ta version d'ASP, il me semble que ASP 3 n'est dispo que sous win2000.
Sous NT, avec IIS4 (Option PACK 4), c'est de l'ASP 2.
 
Demande confirmation !!!

Reply

Marsh Posté le 12-06-2001 à 10:09:05    

je tourne sur Win 2000 dc je pense avoir la dernière version d'ASP

Reply

Marsh Posté le 12-06-2001 à 11:19:49    

petit couip de gueule personnel
 
L'asp au chioote vive le php  :pt1cable:  
 
je trouveque c'est un peule bordel l'asp, alors quele php y a pas a tortillé du cul pour chier droit  :gun: (pardonner moi l'expression)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed