insertion de liens dans un forum?? utilisation de regexp ds page ASP!! - Programmation
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)
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
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 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 ">
je sais , je suis surement pa strès clair
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 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 blablaurl: 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]
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
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.
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?
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.comurl:";
$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]
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
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" ))
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...
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.
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
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
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
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
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 !!!
Marsh Posté le 12-06-2001 à 10:09:05
je tourne sur Win 2000 dc je pense avoir la dernière version d'ASP
Marsh Posté le 12-06-2001 à 11:19:49
petit couip de gueule personnel
L'asp au chioote vive le php
je trouveque c'est un peule bordel l'asp, alors quele php y a pas a tortillé du cul pour chier droit (pardonner moi l'expression)
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]