webForumDet fria alternativet

Tagg-parser

0 svar · 844 visningar · startad av Vide

VideMedlem sedan dec. 19998 577 inlägg
#1

Frågor kans ställas i denna tråden.

Detta är en samling script som gör det möjligt att flytta dina texter ifrån själva HTML-dokumentets struktur för att ha dom i en separat fil, vilket gör det avsevärt enklare att redigera även för dom som inte kan HTML.

Det hela går ut på att du lägger texterna i egenskapade taggar t.ex:

<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#006666">[Links_Bread]
Detta är en massa text om min länksida...
[/Links_Bread]

Eftersom jag är förespråkare av XML, så har jag gjort så att dina taggar måste vara case-sensitive. ;)
Du kan alltså ha en tagg som hete [Text] och en som heter [tExt] och dom kommer att tolkas som olika taggar.

Genom detta script kan du lätt byta ut dina texter dynamiskt utan att kladda till sidan med så att den blir oläsbar.

backbone.asp - Alla funktioner i en fil.

<%
'** Öppnar och återger filens innehåll **'
Function ReadFile(file)
	Set fso = CreateObject("Scripting.FileSystemObject")
	strPath = Server.MapPath(".\") & "\" & file
	ReadFile = fso.OpenTextFile(strPath, 1).ReadAll
	Set fso = Nothing
End Function

'** Hämtar text mellan angivna taggar **'
Function getText(strString,strTag,bolRemChr13)
	'** Tolkar taggen **'
	strFirstChar = Left(strTag,1)
	strLastChar = Right(strTag,1)
	strTagContents = Mid(strTag,2,Len(strTag)-2)
	strEndTag = strFirstChar & "/" & strTagContents & strLastChar
	
	'** Skapar RegExp-objektet **'
	Set RE = New RegExp
	RE.Global = false
	RE.IgnoreCase = false
	RE.Pattern = "(\"&strFirstChar&strTagContents&"\"&strLastChar&"){1}(.&#0124;\n)+(\"&strFirstChar&"/"&strTagContents&"\"&strLastChar&"){1}"
	'Response.Write "(\"&strFirstChar&strTagContents&"\"&strLastChar&"){1}(.&#0124;\n)+(\"&strFirstChar&"/"&strTagContents&"\"&strLastChar&"){1}"
	Set MM = RE.Execute(strString)
	For each M in MM
		strTmp = M
	Next
	
	strTmp = Replace(strTmp,strTag,"")
	strTmp = Replace(strTmp,strEndTag,"")
	
	
	If InStr(strTmp,vbcrlf) AND bolRemChr13 Then strTmp = Mid(strTmp,2)
	
	getText = Trim(strTmp)
End Function

'** Byter radbrytningar mot <br> **'
Function br(strC)
	br = Replace(strC,vbcrlf,"<br>")
End Function
%>

default.asp - Din sida som texterna skall in i.

<!--#include file="backbone.asp"-->
<%
'** Läser in filen, ändra filens namn till det din fil heter **'
strC = ReadFile("texter.txt")

'** Strängen som skall sökas, taggen, ta bort första radbrytningen? **'
Response.Write br(getText(strC,"[Text_om_asp]",true))
%>

Utifrån ovanstående kod läser jag in filen texter.txt.

I anropet av en tagg anger jag först själva texten som skall sökas (den som jag hämtade ur filen texter.txt), sedan vad startataggen ser ut som (sluttaggen tolkas av scriptet och behövs inte som argument), och sisst anger du true eller false beroende på om du vill ta bort de onödiga radbrytningen i början av taggen eller inte.

Alltså:
getText(texterna,taggen,true/false)

br(string) omvandlar alla radbrytningar till <br>

Lycka till! :)

Mvh, Vide

------------------
Vide rox = new Vide();
rox.learn("C#");

webeye.nu

[Redigerat av Vide den 05 jul 2001]

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