Avatar billede jens Nybegynder
13. juli 1999 - 09:58 Der er 16 kommentarer og
1 løsning

Find URL i tekst fra DB

Hej !

Jeg har lagt mærke til at at nogle DB''er/ASP sider kan genkende en URL i en tekst ( f.eks. her på eksperten ). Som her : http://www.dju.dk/

Forstået på den måde at jeg skriver en tekst i f.eks. et debatforum og skriver der også en URL. Når en læser trækker min tekst frem så kan han direkte klikke på min indsatte URL og derfra komme videre.

- Hvorn'' laver man det ??

- Jens
Avatar billede brandt Nybegynder
13. juli 1999 - 10:13 #1
<HTML>
<Head>
<Title>LinkTekst</Title>
<%
Function LinkTekst(Tekst)
LinkTekst = ""
A_Start = 1

if InStr(Tekst, "http://") then
  do until A_Start >= len(Tekst)
  LinkChr = InStr(A_Start, Tekst, "http://")
  NextSpace = InStr(LinkChr, Tekst, " ")

  if NextSpace = 0 then NextSpace = Len(Tekst) + 1

  URL = Mid(Tekst, LinkChr, NextSpace - LinkChr)

  LinkTekst = LinkTekst & Mid(Tekst, A_Start, LinkChr - A_Start)
  LinkTekst = LinkTekst & "<A Href=" & Chr(34) & URL & Chr(34) & ">" & URL & "</A>"

  if Int(LinkChr) = Int(InStrRev(Tekst, "http://")) then
    LinkTekst = LinkTekst & Mid(Tekst, NextSpace, Len(Tekst) - A_Start)
    A_Start = Len(Tekst)
  else
    A_Start = NextSpace
  end if
  loop
else
  LinkTekst = Tekst
end if
End Function
%>
</Head>
<Body>

<% = LinkTekst("Se min hjemmeside på http://www.m.ds.person.dk") %>

</Body>
</HTML>
Avatar billede brandt Nybegynder
13. juli 1999 - 10:14 #2
ps, det var en jeg fandt på et eller andet asp site engang.

Er der måske nogen der kan huske hvilket
Avatar billede sirius Nybegynder
13. juli 1999 - 12:04 #3
sikket http://www.activeserverpages.dk
de har ivertfald også sådan en
Avatar billede s Nybegynder
13. juli 1999 - 12:09 #4
Tror også http://netcoders.dk har en...
Avatar billede jens Nybegynder
13. juli 1999 - 16:36 #5
Hej igen

Jeg har forsøgt at bruge overstående.

Kan i prøve at hjælpe en håbløs nybegynder lidt videre.


Jeg knalder den har ind oppen i min HEAD

<%
Function LinkTekst(Tekst)
LinkTekst = ""
A_Start = 1

if InStr(Tekst, "http://") then
  do until A_Start >= len(Tekst)
  LinkChr = InStr(A_Start, Tekst, "http://")
  NextSpace = InStr(LinkChr, Tekst, " ")

  if NextSpace = 0 then NextSpace = Len(Tekst) + 1

  URL = Mid(Tekst, LinkChr, NextSpace - LinkChr)

  LinkTekst = LinkTekst & Mid(Tekst, A_Start, LinkChr - A_Start)
  LinkTekst = LinkTekst & "<A Href=" & Chr(34) & URL & Chr(34) & ">" & URL & "</A>"

  if Int(LinkChr) = Int(InStrRev(Tekst, "http://")) then
    LinkTekst = LinkTekst & Mid(Tekst, NextSpace, Len(Tekst) - A_Start)
    A_Start = Len(Tekst)
  else
    A_Start = NextSpace
  end if
  loop
else
  LinkTekst = Tekst
end if
End Function
%>


Når det er gjort så skal jeg have den her ind:
<% = LinkTekst("Din Tekst") %>


Det som jeg skulle bruge det til var når jeg trak noget ud af en DB - det gør jeg på følgende ( forkortede ) måde.

Kontakter DB osv.

Skriver så:
<% hej = replace(FP_FieldVal(fp_rs,"tekst"),vbcr,"<br>")%>

Og så kommer min tekst ( det er her der kan komme en URL )
<% Response.write hej %>

Hvordan skal jeg dog få det sidste sat sammen med det som jeg satte ind i HEADEN ?? - har prøver meget ( men ikke fundet svaret )


Er der nogen der har et godt svar på det ;-)

Hilsen
Jens


Avatar billede s Nybegynder
13. juli 1999 - 19:56 #6
Øhh... det skal ikke sættes ind i headen men som det første i det script der hoppes til når brugeren submitter formen.
Avatar billede jens Nybegynder
13. juli 1999 - 20:03 #7
Øhhhh , øhhhhh ;-)

Jeg har selv fundet koden inde hos Netcoders og der stod der altså ikke noget om form osv.

Der stod følgende i txt filen ...

Funktionen LinkTekst placeres øverst på ASP siden.
-----Derefter skal du bare skrive:
<% = LinkTekst("Din Tekst") %>
Når du vil have alle URL's i en tekst omdannet til links.

Så derfor mine øhhhhh....

andre der kan hjælpe,,, eller er jeg helt galt på den, og det har noget at gøre med form ???

- Jens
Avatar billede s Nybegynder
13. juli 1999 - 20:08 #8
Nåh... sådan et script...
Avatar billede s Nybegynder
13. juli 1999 - 20:14 #9
Det er næmmere hvis du når en bruger submitter en form sætter følgende ind i det script der gemmer den tekst brugeren har indtastet i databasen:


<%
Sub LinkTekst()
Tekst = Request.form("NAVNET PÅ FELTET BRUGEREN HAR INDTASTET TEKSTEN I")
LinkTekst = ""
A_Start = 1

if InStr(Tekst, "http://") then
  do until A_Start >= len(Tekst)
  LinkChr = InStr(A_Start, Tekst, "http://")
  NextSpace = InStr(LinkChr, Tekst, " ")

  if NextSpace = 0 then NextSpace = Len(Tekst) + 1

  URL = Mid(Tekst, LinkChr, NextSpace - LinkChr)

  LinkTekst = LinkTekst & Mid(Tekst, A_Start, LinkChr - A_Start)
  LinkTekst = LinkTekst & "<A Href=" & Chr(34) & URL & Chr(34) & ">" & URL & "</A>"

  if Int(LinkChr) = Int(InStrRev(Tekst, "http://")) then
    LinkTekst = LinkTekst & Mid(Tekst, NextSpace, Len(Tekst) - A_Start)
    A_Start = Len(Tekst)
  else
    A_Start = NextSpace
  end if
  loop
else
  LinkTekst = Tekst
end if
End Sub
%>

Hust at ændre navnet på feltet.

Så bliver linket lavet om inden det bliver sat ind i databasen.
Avatar billede s Nybegynder
13. juli 1999 - 20:15 #10
Hmm... suberne skulle ikke have været medtaget...
Her er det rettede script:

<%
Tekst = Request.form("NAVNET PÅ FELTET BRUGEREN HAR INDTASTET TEKSTEN I")
LinkTekst = ""
A_Start = 1

if InStr(Tekst, "http://") then
  do until A_Start >= len(Tekst)
  LinkChr = InStr(A_Start, Tekst, "http://")
  NextSpace = InStr(LinkChr, Tekst, " ")

  if NextSpace = 0 then NextSpace = Len(Tekst) + 1

  URL = Mid(Tekst, LinkChr, NextSpace - LinkChr)

  LinkTekst = LinkTekst & Mid(Tekst, A_Start, LinkChr - A_Start)
  LinkTekst = LinkTekst & "<A Href=" & Chr(34) & URL & Chr(34) & ">" & URL & "</A>"

  if Int(LinkChr) = Int(InStrRev(Tekst, "http://")) then
    LinkTekst = LinkTekst & Mid(Tekst, NextSpace, Len(Tekst) - A_Start)
    A_Start = Len(Tekst)
  else
    A_Start = NextSpace
  end if
  loop
else
  LinkTekst = Tekst
end if
%>
Avatar billede jens Nybegynder
13. juli 1999 - 23:40 #11
Takker :-)
Avatar billede jens Nybegynder
13. juli 1999 - 21:12 #12
Nu er jeg meget forviret ;-)

Snakker vi nu om forms ?

Det som jeg spørger om ( ikke for at være uhøflig - kunne ikke falde mig ind )er om man kan få en URL lavet klikbar i en tekst der hentes fra en DB ?

- Jens

Eller skal jeg bare opgive - græder næsten ;-)
Avatar billede s Nybegynder
13. juli 1999 - 21:41 #13
Det jeg havde lavet var et script der ændrede urlen når den fx. blev indsat fra en form i databasen.
Men hvis det bare er det du vil virker det første script (brands) jo godt nok...

<HTML>
<Head>
<Title>LinkTekst</Title>
<%
Function LinkTekst(Tekst)
LinkTekst = ""
A_Start = 1

if InStr(Tekst, "http://") then
  do until A_Start >= len(Tekst)
  LinkChr = InStr(A_Start, Tekst, "http://")
  NextSpace = InStr(LinkChr, Tekst, " ")

  if NextSpace = 0 then NextSpace = Len(Tekst) + 1

  URL = Mid(Tekst, LinkChr, NextSpace - LinkChr)

  LinkTekst = LinkTekst & Mid(Tekst, A_Start, LinkChr - A_Start)
  LinkTekst = LinkTekst & "<A Href=" & Chr(34) & URL & Chr(34) & ">" & URL & "</A>"

  if Int(LinkChr) = Int(InStrRev(Tekst, "http://")) then
    LinkTekst = LinkTekst & Mid(Tekst, NextSpace, Len(Tekst) - A_Start)
    A_Start = Len(Tekst)
  else
    A_Start = NextSpace
  end if
  loop
else
  LinkTekst = Tekst
end if
End Function
%>
</Head>
<Body>

<% = LinkTekst("Se min hjemmeside på http://www.m.ds.person.dk") %>

</Body>
</HTML>

Så skal <% = LinkTekst(Udtræk fra database) %>
bare stå hved hver post der bliver hentet fra databasen.

Håber det virker...
Avatar billede jens Nybegynder
13. juli 1999 - 21:50 #14
Håber du er en tålmodig mand ;-)

Nu er vi ved starten igen ( næsten ) Tidligere skrev jeg følgende:

Skriver så:
<% hej = replace(FP_FieldVal(fp_rs,"tekst"),vbcr,"<br>")%>

Og så kommer min tekst ( det er her der kan komme en URL )
<% Response.write hej %>

Hvordan skal jeg dog få det sidste sat sammen med det som jeg satte ind i HEADEN ?? - har prøver meget ( men ikke fundet svaret )



Du skriver så ( S )
Så skal <% = LinkTekst(Udtræk fra database) %>
bare stå hved hver post der bliver hentet fra databasen.

Hvordan mener du det skal står . i forhold til mine udtræk som du kan se herover. Er det f.eks.
<% = LinkTekst(Udtræk fra database) %>
<% Response.write hej %>

Håber du er med i nu :-)

Hilsen
Jens


Avatar billede s Nybegynder
13. juli 1999 - 22:13 #15
Når du indsætter et nyt svar i databasen (!) skal der stå følgende i det script der indsætter feltet:
hej = replace(request.form("FP_FieldValdd")(fp_rs,"tekst"),VBCrLf,"<br>")

hvor FP_FieldValdd" er navnet på det tekstfelt brugeren skriver teksten der skal indsættes i databasen.

Når du så trækker det ud af databasen sætter du følgende ind i det script der trækker data ud af databasen (!) :

<HTML>
<Head>
<Title>LinkTekst</Title>
<%
Function LinkTekst(Tekst)
LinkTekst = ""
A_Start = 1

if InStr(Tekst, "http://") then
  do until A_Start >= len(Tekst)
  LinkChr = InStr(A_Start, Tekst, "http://")
  NextSpace = InStr(LinkChr, Tekst, " ")

  if NextSpace = 0 then NextSpace = Len(Tekst) + 1

  URL = Mid(Tekst, LinkChr, NextSpace - LinkChr)

  LinkTekst = LinkTekst & Mid(Tekst, A_Start, LinkChr - A_Start)
  LinkTekst = LinkTekst & "<A Href=" & Chr(34) & URL & Chr(34) & ">" & URL & "</A>"

  if Int(LinkChr) = Int(InStrRev(Tekst, "http://")) then
    LinkTekst = LinkTekst & Mid(Tekst, NextSpace, Len(Tekst) - A_Start)
    A_Start = Len(Tekst)
  else
    A_Start = NextSpace
  end if
  loop
else
  LinkTekst = Tekst
end if
End Function
%>
</Head>
<Body>

<% = LinkTekst("Se min hjemmeside på http://www.m.ds.person.dk") %>

</Body>
</HTML>


For hvert udtræk du så laver gennem databasen (lav en loop eller noget andet...) indsætter du følgende:

<% = LinkTekst(Udtræk fra database) %

Der hvor der står Udtræk fra databasen skal du istedet skrive den kode der får teksten ud fra databasen.

Det er gerne noget i retning af:

<% = LinkTekst(rs("Feltnavn")) %



Håber du kan få dette til at virke...
Avatar billede jens Nybegynder
13. juli 1999 - 23:09 #16
Hej S

Så virker du sgi :-)

Jeg afviser lige svaret fra brandt - han leverede god nok koden, men "s" var med hele vejen ( håber det er ok brandt )

Giver du mig et svar jeg kan acceptere "s"

Tak for hjælpen :-)

Hilsen
Jens
Avatar billede s Nybegynder
13. juli 1999 - 23:12 #17
Her er mit svar.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester