webForumDet fria alternativet

http://... blir länk

22 svar · 493 visningar · startad av skarbratt

skarbrattMedlem sedan juli 2000325 inlägg
#1

Någon som ekelt förklarar hur man tar http://och-texten-efter-och-gör-om-det-till-en-länk? MEn inte den här texten...

------------------
fencing for you?
http://www.fencing4u.nu/

VideMedlem sedan dec. 19998 577 inlägg
#2

En liten funktion:

Function LinkURL(strInput)

	iCurrentLocation = 1
	Do While InStr(iCurrentLocation, strInput, "http://", 1) <> 0
		iLinkStart = InStr(iCurrentLocation, strInput, "http://", 1)
		iLinkEnd = InStr(iLinkStart, strInput, " ", 1)
		If iLinkEnd = 0 Then iLinkEnd = Len(strInput) + 1
		Select Case Mid(strInput, iLinkEnd - 1, 1)
			Case ".", "!", "?"
				iLinkEnd = iLinkEnd - 1
		End Select
		strOutput = strOutput & Mid(strInput, iCurrentLocation, iLinkStart - iCurrentLocation)
		strLinkText = Mid(strInput, iLinkStart, iLinkEnd - iLinkStart)
		strOutput = strOutput & "<A HREF=""" & strLinkText & """>" & Mid(strLinkText,8) & "</A>"
		iCurrentLocation = iLinkEnd
	Loop
	strOutput = strOutput & Mid(strInput, iCurrentLocation)
	LinkURL = strOutput
End Function

------------------
PC-älskare prasslar i säven, och har malt i ryggen
www.webeye.nu
Är du med i facket?

skarbrattMedlem sedan juli 2000325 inlägg
#3

Tack, men...

Hade faktiskt lyckats med samma sak, problemet med detta script är bara att om man skriver http://

(Enter utan mellanslag så buggar det ut)

------------------
fencing for you?
http://www.fencing4u.nu/

skarbrattMedlem sedan juli 2000325 inlägg
#4

Min kodsnutt ser ut på följande sätt:

			BodyText = TextVal
			IF (INSTR(BodyText, "http://") > 0) OR (INSTR(BodyText, "@") > 0) THEN
		 	StringArray = SPLIT(BodyText)
			FOR i = 0 TO UBOUND(StringArray)
				IF INSTR(StringArray(i), "http://") THEN
	                ' Check if external link. Then open new window if link is clicked.
	                if (InStr(StringArray(i), "http://www.hemsidan.se")) then
	                    target = ""
	                else
	                    target = "target='_new'"
	                end if
					IF INSTR(StringArray(i), Chr(10)) THEN
						StringArray2 		= SPLIT(StringArray(i), Chr(10))
						StringArray2(0) = "<A HREF='" & StringArray2(0) & "' " & target & ">" & StringArray2(0) & "</A>"
						StringArray(i) 	= JOIN(StringArray2, Chr(10))
					ELSE
						StringArray(i) 	= "<A HREF='" & StringArray(i) & "' " & target & ">" & StringArray(i) & "</A>"
					END IF
					
				END IF
	
				IF INSTR(StringArray(i), "@") THEN
					IF INSTR(StringArray(i), Chr(10)) THEN
						StringArray2 		= SPLIT(StringArray(i), Chr(10))
						StringArray2(0) = "<A HREF='mailto:" & StringArray2(0) & "'>" & StringArray2(0) & "</A>"
						StringArray(i) 	= JOIN(StringArray2, Chr(10))
					ELSE
						StringArray(i) 	= "<A HREF='mailto:" & StringArray(i) & "'>" & StringArray(i) & "</A>"
					END IF
				END IF
			NEXT
		BodyText = JOIN(StringArray, " ")
		END IF
	  BodyText = CheckSQLStringOut(BodyText)

------------------
fencing for you?
http://www.fencing4u.nu/

[Redigerat av skarbratt den 28 aug 2000]

spangoMedlem sedan juni 20008 205 inlägg
#5

Har gjort en sån grej i JScript:

function snyggaTill(tmp, firstChar){
	tmp += "";
	tmp = tmp.replace(/\r\n/g, "\n");
	tmp = tmp.replace(/\r/g, "\n");
	tmp = tmp.replace(/\n/g, "\r\n" + firstChar);
	return firstChar + tmp;
	}

//Skapa links ur ickeparsad txt
function makeLinks(arg){
	arg += "";
	reg = /http:\/\/\S+/gi;
	hits = arg.match(reg)
	arg = Server.HTMLEncode(arg);
	if(hits){
		for(var i = 0; i < hits.length; i++) arg = arg.replace(Server.HTMLEncode(hits[ i]), "<a href=\"" + hits[ i] + "\" target=\"_blank\">" + hits[ i] + "</a>");
		}
	return snyggaTill(arg, "<br>");
	}

[r]
Anropas makeLinks("texten som ska fixas till"), funkar bra att göra det från vbscript.
[/r]

------------------
-- spango
Livet står på lur alldeles bakom knuten.

[Redigerat av spango den 28 aug 2000]

skarbrattMedlem sedan juli 2000325 inlägg
#6

Får det inte att funka vad gör jag för fel tror du?

Exakt hur skall jag få det att fungera?

------------------
fencing for you?
http://www.fencing4u.nu/

TmedMedlem sedan juni 2000145 inlägg
emissionMedlem sedan dec. 19996 721 inlägg
#8

Jag byggde en komponent för den här typen av funktioner för ett tag sedan. Ursprungligen innehåller den funktioner för att bestämma target beroende på länkens innehåll, men denna lilla snutt (konverterad till VBScript) borde funka ändå. Den länkar upp mailadresser också, samt ord som börjar på "www.".

strText är texten som ska parsas

        mDelimit = Chr(0)
        Set re = New RegExp
        re.Global = True
        re.IgnoreCase = true
        re.Pattern = "(\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+)"
        strText = re.Replace(strText, "<a href=""mailto" & mDelimit & ":$1"">$1</a>")
        
        re.Pattern = "(http://|https://|ftp://|mailto:)(\S)(\S+)"
        strText = re.Replace(strText, "<a href=""$1$2" & mDelimit & "$3"">$2" & mDelimit & "$3</a>")
        
        re.Pattern = "(www\.(\S)(\S+))"
        strText = re.Replace(strText, "<a href=""http://$1"">$1</a>")
        
        strText = Replace(strText, mDelimit, "")

[Redigerat av emission den 29 aug 2000]

skarbrattMedlem sedan juli 2000325 inlägg
#9

Länken jag fick av Tmed funkar inte bättre än något av de andra kodexemplena.

Om man använder sig av "Enterslag" efter länken och sedan skrivver något buggar det liksom ut.

------------------
fencing for you?
http://www.fencing4u.nu/

skarbrattMedlem sedan juli 2000325 inlägg
#10

sedan verkar inte kodexemplena med "New RegExp" fungera för mig får bara error...

------------------
fencing for you?
http://www.fencing4u.nu/

emissionMedlem sedan dec. 19996 721 inlägg
#11

Det kräver den senaste versionen av scripting engine. Väl värt nedladdningsbesväret.
http://msdn.microsoft.com/scripting/default.htm?/scripting/vbscript/download/vbsdown.htm

skarbrattMedlem sedan juli 2000325 inlägg
#12

Har installerat men får fortfarande Syntaxfel: på den här raden "Set re = New RegExp"

------------------
fencing for you?
http://www.fencing4u.nu/

emissionMedlem sedan dec. 19996 721 inlägg
#13

Lustigt. Har du installerat den på rätt maskin? ;)

skarbrattMedlem sedan juli 2000325 inlägg
#14

Verkar fungera nu, men skall testa lite till innan jag hoppar högt, men har dock redan börjat småhoppa lite här i stolen.

[Redigerat av skarbratt den 30 aug 2000]

skarbrattMedlem sedan juli 2000325 inlägg
#15

Tack emission!

Man förstår att du inte håller på med jobbiga saker som att bära flytlådor utan ängar dig åt det du är bäst på asp kod... länge leve den nya kungen!

------------------
fencing for you?
http://www.fencing4u.nu/

@ndersMedlem sedan juni 200032 969 inlägg
#16

den nya kungen?

emission har varit kung länge! :)

------------------
<A HREF="http://www.cartman.nu" TARGET=_blank>
mannen, myten, mutanten.</A>

skarbrattMedlem sedan juli 2000325 inlägg
#17

Jo, men det har varit mest en ploj grej. Men jag har inset nu att det måste vara min uppgit i livet att se till att han flyttar in i det stora slottet och blir en riktig kung... *ler*

------------------
fencing for you?
http://www.fencing4u.nu/

costodiaMedlem sedan aug. 2000864 inlägg
#18

Jag får inte det att funka, som jag fattde det så ska jag klistra in

    mDelimit = Chr(0)        Set re = New RegExp        re.Global = True        re.IgnoreCase = true        re.Pattern = "(\\w+((-\\w+)&#0124;(\\.\\w+))\*\\@\[A-Za-z0-9\]+((\\.&#0124;-)\[A-Za-z0-9\]+)\*\\.\[A-Za-z0-9\]+)"        strText = re.Replace(strText, "\<a href=""mailto" & mDelimit & ":$1""\>$1\</a\>")                re.Pattern = "(http://&#0124;https://&#0124;ftp://&#0124;mailto:)(\\S)(\\S+)"        strText = re.Replace(strText, "\<a href=""$1$2" & mDelimit & "$3""\>$2" & mDelimit & "$3\</a\>")                re.Pattern = "(www\\.(\\S)(\\S+))"        strText = re.Replace(strText, "\<a href=""http://$1""\>$1\</a\>")                strText = Replace(strText, mDelimit, "")

i viewmsg.asp, så att filen set ur så här:

<!--#include file="functions.inc"-->
<%

Set Connection = Server.CreateObject("ADODB.Connection")
Connection.Open Session("forumdb")

SQLStmt = "SELECT * FROM Forums where Id = " & Request("ForumId")
Set RS = Connection.Execute(SQLStmt)

SQLStmt = "SELECT *, Format$([date],'yyyy/mm/dd') AS FormDate, Format$([date],'hh:mm') AS FormTime FROM Entries where Id = " & Request("Id")
SQLStmt = SQLStmt & " AND OrgThread = True"
Set RS2 = Connection.Execute(SQLStmt)

SQLStmt = "SELECT *, Format$([date],'yyyy/mm/dd') AS FormDate, Format$([date],'hh:mm') AS FormTime FROM Entries where ReplyId = " & Request("Id")
SQLStmt = SQLStmt & " AND OrgThread = False Order by Id Desc"
Set RS3 = Connection.Execute(SQLStmt)

    mDelimit = Chr(0)        Set re = New RegExp        re.Global = True        re.IgnoreCase = true        re.Pattern = "(\\w+((-\\w+)&#0124;(\\.\\w+))\*\\@\[A-Za-z0-9\]+((\\.&#0124;-)\[A-Za-z0-9\]+)\*\\.\[A-Za-z0-9\]+)"        strText = re.Replace(strText, "\<a href=""mailto" & mDelimit & ":$1""\>$1\</a\>")                re.Pattern = "(http://&#0124;https://&#0124;ftp://&#0124;mailto:)(\\S)(\\S+)"        strText = re.Replace(strText, "\<a href=""$1$2" & mDelimit & "$3""\>$2" & mDelimit & "$3\</a\>")                re.Pattern = "(www\\.(\\S)(\\S+))"        strText = re.Replace(strText, "\<a href=""http://$1""\>$1\</a\>")                strText = Replace(strText, mDelimit, "")

%>
<html>

<head>
<link REL="stylesheet" HREF="../godzilla/newcostodiastyle.css" TYPE="text/css">
<title>Costodia Forum</title>
<meta name="Author" content="Martin Persson">
<meta name="Company" content="Ebid Handelsbolag">
<meta name="Publishied" content="2000">
<meta name="Copyright" content="Ebid Handelsbolag">
</head>

<body MARGINHEIGHT="0" MARGINWIDTH="0" bgcolor="#FFFFFF" text="#000000" topmargin="0"
leftmargin="0" vlink="#0000FF">

<table border="0" width="601">
<tr>
<td width="200" valign="top" colspan="2"><img src="images/forumlogga.gif" WIDTH="265"
HEIGHT="108"></td>
</tr>
<tr>
<td width="168" valign="top"><p align="right"><img src="images/dottedvertical.gif"
alt="dottedvertical.gif (956 bytes)" WIDTH="2" HEIGHT="361"></td>
<td valign="top" width="532"><p align="left">Tänk på att använda ett vårdat språk
när du gör inlägg i<br>
våra forum. Oseriösa inlägg tas bort efter behov.</p>
<p align="left"><img src="dottedline.gif" alt="dottedline.gif (909 bytes)" WIDTH="360"
HEIGHT="2"></p>
<table border="0" width="400">
<tr>
<td width="239" align="center"><img src="images/back.gif" alt="back.gif (57 bytes)"
WIDTH="12" HEIGHT="9"> <a href="forumthreads.asp?ForumId=<%=RS("Id")%>">Tillbaka till <%=RS("Forum")%></a></td>
<td width="153" align="center"><img src="images/post.gif" alt="havemail.gif (513 bytes)"
WIDTH="12" HEIGHT="9"> <a
href="forumpost.asp?ForumId=<%=RS("Id")%>&MessageId=<%=RS2("Id")%>">Besvara inlägget</a></td>
</tr>
</table>
<table border="0" width="400" cellspacing="0">
<tr>
<td width="57" class="newmediaNORMALsheet" align="left">Forum: </td>
<td width="339" class="newmediaNORMALsheet"><%= HTMLTecken(RS("Forum"))%>
</td>
</tr>
<tr>
<td width="57" class="newmediaNORMALsheet" align="left">Rubrik: </td>
<td width="339" class="newmediaNORMALsheet"><%= HTMLTecken(RS2("Subject"))%>
</td>
</tr>
</table>
<table border="0" width="400">
<tr>
<td width="65%" class="newmediaNORMALsheet">Namn: <%= HTMLTecken(RS2("Name"))%></td>
<td width="35%" class="newmediaNORMALsheet">Datum: <%= HTMLTecken(RS2("FormDate"))%></td>
</tr>
<tr>
<td width="65%" class="newmediaNORMALsheet">E-post: <a href="mailto:<% = RS2("Email")%>"><% = HTMLTecken(RS2("Email"))%></a></td>
<td width="35%" class="newmediaNORMALsheet">Tid: <%=RS2("FormTime")%></td>
</tr>
<tr>
<td width="50%" colspan="2">Original post:<br>
<%= radbryt(HTMLTecken(RS2("Comment")))%> <br>
</td>
</tr>
<tr>
<td width="50%" colspan="2"><img src="dottedline.gif" width="360" height="2"
alt="dottedline.gif (909 bytes)"></td>
</tr>
</table>
<p>Uppföljare:</p>
<table border="0" width="400">
<tr>
<td width="100%"><ul>
<% Do until RS3.EOF %>
<li><a
href="viewmsg.asp?Id=<%=RS2("Id")%>&ForumId=<%=RS("Id")%>&Showsub=<%=RS3("Id")%>">Re:
<%= RS2("Subject")%> (<%= HTMLTecken(RS3("Name"))%>, <%= RS3("FormDate")%> <%= RS3("FormTime")%> ) </a></li>
<% If Len(Trim(Request("Showsub"))) > 0 And Trim(Request("Showsub")) = Trim(RS3("Id")) Then %>
<!-- Insert -->
<%=radbryt(HTMLTecken(RS3("Comment")))%>
<!-- End -->
<% End If%>
<%
RS3.MoveNext
Loop
%>
</ul>
</td>
</tr>
</table>
<p><img src="dottedline.gif" width="360" height="2" alt="dottedline.gif (909 bytes)"></p>
<p><a style="cursor:hand" class="standard10"
onclick="window.external.AddFavorite(location.href, document.title);">Lägg till denna
sida i dina Favoriter</a></td>
</tr>
</table>

<p> </p>

<p> </p>
</body>
</html>
<%
Rs.Close
Rs2.Close
rs3.close
Connection.Close %>

men på http://www.costodia.com/forum/viewmsg.asp?id=314&ForumId=10 visas skripterror nu.

------------------
Tack på förhand
Mvh Martin Persson
www.Costodia.com

emissionMedlem sedan dec. 19996 721 inlägg
#19

Nä. För det första så tappade du bort alla radbrytningar. För det andra måste du mata in ett värde i strText (skriptet är inte magiskt ;) )

costodiaMedlem sedan aug. 2000864 inlägg
#20

nu har jag gjort scriptet med radbrytningar så det ser ut så här:

<html>

<head>
<link REL="stylesheet" HREF="../godzilla/newcostodiastyle.css" TYPE="text/css">
<title>Costodia Forum</title>
<meta name="Author" content="Martin Persson">
<meta name="Company" content="Ebid Handelsbolag">
<meta name="Publishied" content="2000">
<meta name="Copyright" content="Ebid Handelsbolag">
</head>

<body MARGINHEIGHT="0" MARGINWIDTH="0" bgcolor="#FFFFFF" text="#000000" topmargin="0"
leftmargin="0" vlink="#0000FF">

<table border="0" width="601">
<tr>
<td width="200" valign="top" colspan="2"><img src="images/forumlogga.gif" WIDTH="265"
HEIGHT="108"></td>
</tr>
<tr>
<td width="168" valign="top"><p align="right"><img src="images/dottedvertical.gif"
alt="dottedvertical.gif (956 bytes)" WIDTH="2" HEIGHT="361"></td>
<td valign="top" width="532"><p align="left">Tänk på att använda ett vårdat språk
när du gör inlägg i<br>
våra forum. Oseriösa inlägg tas bort efter behov.</p>
<p align="left"><img src="dottedline.gif" alt="dottedline.gif (909 bytes)" WIDTH="360"
HEIGHT="2"></p>
<table border="0" width="400">
<tr>
<td width="239" align="center"><img src="images/back.gif" alt="back.gif (57 bytes)"
WIDTH="12" HEIGHT="9"> <a href="forumthreads.asp?ForumId=10">Tillbaka till Design</a></td>
<td width="153" align="center"><img src="images/post.gif" alt="havemail.gif (513 bytes)"
WIDTH="12" HEIGHT="9"> <a
href="forumpost.asp?ForumId=10&MessageId=314">Besvara inlägget</a></td>
</tr>
</table>
<table border="0" width="400" cellspacing="0">
<tr>
<td width="57" class="newmediaNORMALsheet" align="left">Forum: </td>
<td width="339" class="newmediaNORMALsheet">Design
</td>
</tr>
<tr>
<td width="57" class="newmediaNORMALsheet" align="left">Rubrik: </td>
<td width="339" class="newmediaNORMALsheet">Design
</td>
</tr>
</table>
<table border="0" width="400">
<tr>
<td width="65%" class="newmediaNORMALsheet">Namn: Design</td>
<td width="35%" class="newmediaNORMALsheet">Datum: 2000-08-15</td>
</tr>
<tr>
<td width="65%" class="newmediaNORMALsheet">E-post: <a href="maimailto:design@Design.se">Design@Design.se</a></td>
<td width="35%" class="newmediaNORMALsheet">Tid: 19:02</td>
</tr>
<tr>
<td width="50%" colspan="2">Original post:<br>
<P>Design</P> <br>
</td>
</tr>
<tr>
<td width="50%" colspan="2"><img src="dottedline.gif" width="360" height="2"
alt="dottedline.gif (909 bytes)"></td>
</tr>
</table>
<p>Uppföljare:</p>
<table border="0" width="400">
<tr>
<td width="100%"><ul>

      \<li\>\<a
        href="viewmsg.asp?Id=314&ForumId=10&Showsub=339"\>Re:

Design (Webmaster, 2000-09-10 13:16) </a></li>

      \<li\>\<a
        href="viewmsg.asp?Id=314&ForumId=10&Showsub=338"\>Re:

Design (Webmaster, 2000-09-10 13:15) </a></li>

      \<li\>\<a
        href="viewmsg.asp?Id=314&ForumId=10&Showsub=337"\>Re:

Design (Webmaster, 2000-09-10 13:14) </a></li>

<!-- Insert -->
<P>Titta gärna in på det nya deisgncentret på http://www.costodia.com/design/index.shtml\</P>
<!-- End -->

    \</ul\>
    \</td\>
  \</tr\>
\</table\>
\<p\>\<img src="dottedline.gif" width="360" height="2" alt="dottedline.gif (909 bytes)"\>\</td\>

</tr>
</table>

<p> </p>

<p> </p>
</body>
</html>

och satte värdet 1 i strText
jag är lite ny på asp, håller på att lära mig, jag gissade at man skulle skriva i en siffra är det rätt?

Tack på förhand,
Mvh Martin Persson
www.Costodia.com

jag testade igen på "]http://www.costodia.com/forum/viewmsg.asp?id=340&ForumId=10 men du funkar inte.

[Redigerat av costodia den 11 sep 2000]

137 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)