Re: Insérer des basiles href et target= "_blank" dans un tex
Publié : mer. 11/mars/2015 18:35
Gally, peut etre que ton dernier code basé sur mon code marchera avec pb2web ! Ce serait l'essenciel 

Forums PureBasic - Français
http://forums.purebasic.com/french/
Quand tu auras trouvé, tu me diras. Ca m'interesse de savoir !falsam a écrit :@SPH: Merci ça Fonctionne avec SpiderBasic mais pas avec PB2Web pour une raison que je n'ai pas encore analysé.
la$="texte : http://www.clubic.com et https://manga.be florence et les autres.C'est pourquoi"
Code : Tout sélectionner
InitNetwork()
Procedure.s URL(Texte.s)
Protected Count.l, Mot1.s, Mot2.s, Site.s, a.l
Protected Result.s, EnTete$
Result = Trim(Texte)
Count = FindString(Texte, " ")
For a = 1 To Count + 1
Mot1 = StringField(Texte, a, " ")
Mot1 = LCase(Mot1)
If FindString(Mot1, ".") > 0 And Left(Mot1, 1) <> "."
Debug Mot1
If Left(Mot1, 4) <> "http"
Mot2 = "http://" + Mot1
Else
Mot2 = Mot1
EndIf
Site = GetURLPart(Mot2, #PB_URL_Site)
EnTete$ = GetHTTPHeader(Mot2)
If FindString(EnTete$, "HTTP/1.1 200 OK")
Result = ReplaceString(Result, Mot1, "<a href='" + Mot2 +"' target='_blank'>" + Site +"</a>", #PB_String_NoCase)
EndIf
Mot1 = "" : Mot2 = "" : Site = ""
EndIf
Next a
Result = ReplaceString(Result, "'", Chr(34))
ProcedureReturn Result
EndProcedure
la$="texte : www.clubic.com et https://manga.be florence et les autres"
Debug URL(la$)
Mon code gere de genre de tournure de phrase.nico a écrit :Il peut y avoir des fins de lignes qui finissent par un point, genre:
la$="texte : http://www.clubic.com et https://manga.be florence et les autres.C'est pourquoi"
Moi non plus, je n'ai pas SBnico a écrit :Et le code que j'ai posté est compatible ou pas, je n'ai pas installé SpiderBasic.
Code : Tout sélectionner
Buffer$ = "Cliques sur ce lien https://www.youtube.com/?hl=fr&gl=FR ou sur http://youtube.com ou www.google.fr"
Regexp$ = "(www|https?://)([^\s]+)"
If CreateRegularExpression(0, Regexp$)
Dim Result$(0)
NbFound = ExtractRegularExpression(0, Buffer$, Result$())
For k = 0 To NbFound-1
Debug Result$(k)
Next
Else
Debug RegularExpressionError()
EndIf
Les fonctionnalités PureBasic liées aux expressions réguliere ne sont pas implémentées dans PB2Web.Marc56 a écrit :je peux pas dire ce qui cloche
Code : Tout sélectionner
Define i.i
Define.s stxt, result, text ="texte : http://www.clubic.com et https://manga.be florence et les autres et www.koakdesign.info"
Repeat
i = FindString(text, " ", 1)
If i = 0
stxt = text
text = #NULL$
Else
stxt = Mid(text, 1, i - 1)
text = Right(text, Len(text) - i)
EndIf
If LCase(Left(stxt, 7)) = "http://" Or LCase(Left(stxt, 8)) = "https://" Or LCase(Left(stxt, 4)) = "www."
result + "<a href=" + Chr(34) + stxt + Chr(34) + " target=" + Chr(34) + "_blank" + Chr(34) + ">" + stxt + "</a>"
Else
result + stxt
EndIf
If text <> #NULL$
result + " "
EndIf
Until text = #NULL$
Debug "*" + result + "*"
Code : Tout sélectionner
EnableExplicit
Procedure.s urlifier(stext.s)
;
Define.i i, urlnum
Define.s stemp, result
If stext <> #NULL$
urlnum = CountString(stext, " ")
For i=0 To urlnum
stemp = StringField(stext, i + 1, " ")
If LCase(Left(stemp, 7)) = "http://" Or LCase(Left(stemp, 8)) = "https://" Or LCase(Left(stemp, 4)) = "www."
result + "<a href=" + Chr(34) + stemp + Chr(34) + " target=" + Chr(34) + "_blank" + Chr(34) + ">" + stemp + "</a>"
Else
result + stemp
EndIf
If i < urlnum
result + " "
EndIf
Next i
ProcedureReturn result
EndIf
EndProcedure
Define Buffer.s = "Cliques sur ce lien https://www.youtube.com/?hl=fr&gl=FR ou sur http://youtube.com ou encore www.koakdesign.info"
Debug urlifier(Buffer)
Buffer = "https://www.youtube.com/?hl=fr&gl=FR http://youtube.com ou encore www.koakdesign.info"
Debug urlifier(Buffer)
Buffer = "Cliques sur ce lien www.koakdesign.info"
Debug urlifier(Buffer)
Buffer = "Cliques"
Debug urlifier(Buffer)
Merci falsam,falsam a écrit :A part ça, j'aime les gens comme toi qui s'acharnent sur la recherche d'une solution. Merci
Si je peux me permettre une correction, c'était le 12 septembre 1962Marc56 a écrit : - JFK - discours du 12 septembre 1952 -
« Nous avons choisi d'aller sur la Lune. Nous avons choisi d'aller sur la Lune au cours de cette décennie et d'accomplir d'autres choses encore, non pas parce que c'est facile, mais justement parce que c'est difficile. Parce que cet objectif servira à organiser et à offrir le meilleur de notre énergie et de notre savoir-faire, parce que c'est le défi que nous sommes prêt à relever, celui que nous refusons de remettre à plus tard, celui que nous avons la ferme intention de remporter, tout comme les autres. »
Source: http://fr.wikipedia.org/wiki/We_choose_ ... o_the_Moon
s/go to the moon/programming/
s/decade/now/
Oups, Merci,Mindphazer a écrit :Si je peux me permettre une correction, c'était le 12 septembre 1962
Code : Tout sélectionner
EnableExplicit
; +--------------------------------------------------------------------------+
; | |
; +--------------------------------------------------------------------------+
Procedure.s TextToURL(stext.s)
;
Protected i.i = 0
Protected urlnum.i = 0
Protected stemp.s = #NULL$
Protected result.s = #NULL$
If stext <> #NULL$
urlnum = CountString(stext, " ")
For i=0 To urlnum
stemp = StringField(stext, i + 1, " ")
If LCase(Left(stemp, 7)) = "http://" Or LCase(Left(stemp, 8)) = "https://" Or LCase(Left(stemp, 4)) = "www."
If LCase(Left(stemp, 4)) <> "www."
result + "<a href=" + Chr(34) + stemp + Chr(34) + " target=" + Chr(34) + "_blank" + Chr(34) + ">" + stemp + "</a>"
Else
result + "<a href=" + Chr(34) + "http://" + stemp + Chr(34) + " target=" + Chr(34) + "_blank" + Chr(34) + ">" + stemp + "</a>"
EndIf
Else
result + stemp
EndIf
If i < urlnum
result + " "
EndIf
Next i
ProcedureReturn result
EndIf
EndProcedure
; +--------------------------------------------------------------------------+
; | |
; +--------------------------------------------------------------------------+
Define Buffer.s = "Cliques sur ce lien https://www.youtube.com/?hl=fr&gl=FR ou sur http://youtube.com ou encore www.koakdesign.info"
Debug TextToURL(Buffer)
Buffer = "https://www.youtube.com/?hl=fr&gl=FR http://youtube.com ou encore www.koakdesign.info"
Debug TextToURL(Buffer)
Buffer = "Cliques sur ce lien www.koakdesign.info"
Debug TextToURL(Buffer)
Buffer = "Cliques"
Debug TextToURL(Buffer)