---
title: "Replace och image width!"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/141577-replace-och-image-width"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "paddan"
published: "2006-01-27T00:47:55.000Z"
updated: "2006-01-29T12:44:06.000Z"
replies: 17
views: 556
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/141577-replace-och-image-width"
---

# Replace och image width!

## #1 — paddan, 2006-01-27T00:47Z

har ett litet problem...det är så här jag har denna replace funktionen:

```
 
Innlegg=.Replace(Innlegg,"<img src=""upload/textbilder/$1"" height="""& getImgHeight("/upload/textbilder/$1")&""" alt=""$1"" class=""text_bild"" />")
```

 

Framför allt denna raden ska ni kolla på: height="""& getImgHeight("/upload/textbilder/$1")&""" 

jag försöker få utan höjden på det:

getImgHeight funktionen:

```
Function getImgHeight(img)
Dim myImg, fs
SET fs= CreateObject("Scripting.FileSystemObject")
IF fs.fileExists(Server.MapPath(img)) THEN
SET myImg = loadpicture(Server.MapPath(img))
getImgHeight = round(myImg.height / 26.4583)
SET myImg = nothing
ELSE
getImgHeight=""
END IF
SET fs=Nothing
END Function
```

 
men problemmet är att den vill inte...skirver jag namnet på bilden istället för $1 så funkar det...men inte annars...

vad är felet?

Permalänk: https://www.webforum.nu/p/141577

## #2 — Peter S, 2006-01-27T22:07Z

```
Replace(Innlegg,getref("f"))

function f(r,o,m,a)
 f = "<img src=""upload/textbilder/"& o &""" height="""& getImgHeight("/upload/textbilder/"& o &"") &""" alt="""& o &""" class=""text_bild"" />"
end function
```

Permalänk: https://www.webforum.nu/p/1755000

## #3 — paddan, 2006-01-28T00:30Z

Jag förstår inte riktigt ditt svar som du gav mig..kan du förklara lite?

Mvh martin

Permalänk: https://www.webforum.nu/p/1755055

## #4 — Peter S, 2006-01-28T11:09Z

Det mest intressanta är först och främst huruvida det fungerade som du tänkt dig.

 :)

Permalänk: https://www.webforum.nu/p/1755118

## #5 — paddan, 2006-01-28T11:52Z

Jag vet inte riktigt var jag ska göra av det..!
Så här ser koden ut från början...

```
.Pattern="\[bild\]([\w\W]*?)\[/bild\]"
Innlegg=.Replace(Innlegg,"<img src=""upload/textbilder/$1"" width="""& getImgWidth("/maxi/upload/textbilder/$1")&""" alt=""$1"" class=""text_bild"" />")
```

 

Men den ger inget värde på widthen...
Jag förstår inte riktigt hur din kod ska kunna fungera här..!

Mvh Martin

Permalänk: https://www.webforum.nu/p/1755138

## #6 — Peter S, 2006-01-28T12:56Z

Har du testat den? Jag bifogar ett minimalt exempel som visar hur det kan gå till  :)

Bilagor:

- [paddan.txt](https://www.webforum.nu/a/9469.txt)

Permalänk: https://www.webforum.nu/p/1755159

## #7 — paddan, 2006-01-28T15:06Z

Jag får inte riktigt rätt på det...
jag kanske ska förklara lite mer.
Det är när jag skriver ut en text så ligger det bildnamn i den texten. 
Jag hämtar sedan ut bilderna från en speciell mapp.

Hela koden just nu:

```
<%
	Innlegg = Replace(Server.HTMLEncode(rs("info")),vbCrLf,"<br />")
	With New RegExp
	.Global=True
	.IgnoreCase=True

	.Pattern="\[u\]([\w\W]*?)\[/u\]"
	Innlegg=.Replace(Innlegg,"<h5>$1</h5>")

	.Pattern="\[b\]([\w\W]*?)\[/b\]"
	Innlegg=.Replace(Innlegg,"<strong>$1</strong>")
	
	.Pattern="\[i\]([\w\W]*?)\[/i\]"
	Innlegg=.Replace(Innlegg,"<em>$1</em>")

	.Pattern="\[p\]([\w\W]*?)\[/p\]"
	Innlegg=.Replace(Innlegg,"<div class=""box"">$1</div>")

	.Pattern="\[r\]([\w\W]*?)\[/r\]"
	Innlegg=.Replace(Innlegg,"<em class=""red"">$1</em>")

	.Pattern="\[g\]([\w\W]*?)\[/g\]"
	Innlegg=.Replace(Innlegg,"<em class=""green"">$1</em>")

	.Pattern="\[bl\]([\w\W]*?)\[/bl\]"
	Innlegg=.Replace(Innlegg,"<em class=""blue"">$1</em>")

	.Pattern="\[c\]([\w\W]*?)\[/c\]"
	Innlegg=.Replace(Innlegg,"<p class=""center"">$1</p>")

	.Pattern="\[www\]([\w\W]*?)\[/www\]"
	Innlegg=.Replace(Innlegg,"<a href=""http://$1"" title=""$1"">$1</a>")

	.Pattern="\[list\]([\w\W]*?)\[/list\]"
	Innlegg=.Replace(Innlegg,"<ul class=""text_list""><li>$1</li></ul>")
	
	
	
	dim a
	a = inlegg

	set r = new regexp

	with r
	 .pattern = "\[img](.*?)\[/img]"
	 a = .Replace(a,getref("f"))
	end with

	set r = nothing

	response.write a
		
	function f(r,o,m,a)
	f = "<img src=""upload/textbilder/"& o &""" height="""& getImgHeight("/upload/textbilder/"& o &"") &""" alt="""& o &""" class=""text_bild"" />"
	end function
	
	
	End With
	Response.write(Innlegg)
	%>
```

 

Denna koden ger syntax error på function f(r,o,m,a) 

Mvh martin

Permalänk: https://www.webforum.nu/p/1755205

## #8 — Peter S, 2006-01-28T15:45Z

Skall det inte vara 'Innlegg' nedan

```
a = inlegg
```

Istället för att skapa ett nytt RegExp-objekt ('r') kan du fortsätta på det föregående.

Anledningen till felmeddelandet tror jag är att funktioner inte får skapas i ett With-block.

```
<%
	Innlegg = Replace(Server.HTMLEncode(rs("info")),vbCrLf,"<br />")
	With New RegExp
	    .Global=True
	    .IgnoreCase=True

	    .Pattern="\[u\]([\w\W]*?)\[/u\]"
	    Innlegg=.Replace(Innlegg,"<h5>$1</h5>")

	    .Pattern="\[b\]([\w\W]*?)\[/b\]"
	    Innlegg=.Replace(Innlegg,"<strong>$1</strong>")
	
	    .Pattern="\[i\]([\w\W]*?)\[/i\]"
	    Innlegg=.Replace(Innlegg,"<em>$1</em>")

	    .Pattern="\[p\]([\w\W]*?)\[/p\]"
	    Innlegg=.Replace(Innlegg,"<div class=""box"">$1</div>")

	    .Pattern="\[r\]([\w\W]*?)\[/r\]"
	    Innlegg=.Replace(Innlegg,"<em class=""red"">$1</em>")

	    .Pattern="\[g\]([\w\W]*?)\[/g\]"
	    Innlegg=.Replace(Innlegg,"<em class=""green"">$1</em>")

	    .Pattern="\[bl\]([\w\W]*?)\[/bl\]"
	    Innlegg=.Replace(Innlegg,"<em class=""blue"">$1</em>")

	    .Pattern="\[c\]([\w\W]*?)\[/c\]"
	    Innlegg=.Replace(Innlegg,"<p class=""center"">$1</p>")

	    .Pattern="\[www\]([\w\W]*?)\[/www\]"
	    Innlegg=.Replace(Innlegg,"<a href=""http://$1"" title=""$1"">$1</a>")

	    .Pattern="\[list\]([\w\W]*?)\[/list\]"
	    Innlegg=.Replace(Innlegg,"<ul class=""text_list""><li>$1</li></ul>")
	
	    .Pattern = "\[img](.*?)\[/img]"
	    Innlegg=.Replace(Innlegg,getref("f"))
	End With
	
	Response.write(Innlegg)
	
	function f(r,o,m,a)
	    f = "<img src=""upload/textbilder/"& o &""" height="""& getImgHeight("/upload/textbilder/"& o &"") &""" alt="""& o &""" class=""text_bild"" />"
	end function
	%>
```

Permalänk: https://www.webforum.nu/p/1755220

## #9 — paddan, 2006-01-28T17:01Z

Den koden ger också syntax error på funktionen!

Permalänk: https://www.webforum.nu/p/1755245

## #10 — Peter S, 2006-01-28T17:06Z

Om det där är all ASP-kod du använder är det inte så konstigt. Parsern borde då klaga på delen med getImgHeight(...).

 :)

Permalänk: https://www.webforum.nu/p/1755250

## #11 — paddan, 2006-01-28T23:07Z

Men vad ska jag göra då?
Har du några ideer?

Permalänk: https://www.webforum.nu/p/1755384

## #12 — Peter S, 2006-01-28T23:12Z

Om inte ovanstående är all ASP-kod är nog det bästa att bifoga just all kod. 

 :)

Permalänk: https://www.webforum.nu/p/1755390

## #13 — paddan, 2006-01-28T23:40Z

Kod som skriver ut allt:

```
<%
	Innlegg = Replace(Server.HTMLEncode(rs("info")),vbCrLf,"<br />")
	With New RegExp
	    .Global=True
	    .IgnoreCase=True

	    .Pattern="\[u\]([\w\W]*?)\[/u\]"
	    Innlegg=.Replace(Innlegg,"<h5>$1</h5>")

	    .Pattern="\[b\]([\w\W]*?)\[/b\]"
	    Innlegg=.Replace(Innlegg,"<strong>$1</strong>")
	
	    .Pattern="\[i\]([\w\W]*?)\[/i\]"
	    Innlegg=.Replace(Innlegg,"<em>$1</em>")

	    .Pattern="\[p\]([\w\W]*?)\[/p\]"
	    Innlegg=.Replace(Innlegg,"<div class=""box"">$1</div>")

	    .Pattern="\[r\]([\w\W]*?)\[/r\]"
	    Innlegg=.Replace(Innlegg,"<em class=""red"">$1</em>")

	    .Pattern="\[g\]([\w\W]*?)\[/g\]"
	    Innlegg=.Replace(Innlegg,"<em class=""green"">$1</em>")

	    .Pattern="\[bl\]([\w\W]*?)\[/bl\]"
	    Innlegg=.Replace(Innlegg,"<em class=""blue"">$1</em>")

	    .Pattern="\[c\]([\w\W]*?)\[/c\]"
	    Innlegg=.Replace(Innlegg,"<p class=""center"">$1</p>")

	    .Pattern="\[www\]([\w\W]*?)\[/www\]"
	    Innlegg=.Replace(Innlegg,"<a href=""http://$1"" title=""$1"">$1</a>")

	    .Pattern="\[list\]([\w\W]*?)\[/list\]"
	    Innlegg=.Replace(Innlegg,"<ul class=""text_list""><li>$1</li></ul>")
	
	    .Pattern = "\[img](.*?)\[/img]"
	    Innlegg=.Replace(Innlegg,getref("f"))
	End With
	
	Response.write(Innlegg)
	
	function f(r,o,m,a)
	    f = "<img src=""upload/textbilder/"& o &""" height="""& getImgHeight("/upload/textbilder/"& o &"") &""" alt="""& o &""" class=""text_bild"" />"
	end function
	%>
```

 

Och här har du funktionerna som tar widthen och heighten 

```
Function getImgWidth(img)
Dim myImg, fs
SET fs= CreateObject("Scripting.FileSystemObject")
IF fs.fileExists(Server.MapPath(img)) THEN
SET myImg = loadpicture(Server.MapPath(img))
getImgWidth = round(myImg.width / 26.4583)
SET myImg = nothing
ELSE
getImgWidth="Fel!"
END IF
SET fs=Nothing
END Function

Function getImgHeight(img)
Dim myImg, fs
SET fs= CreateObject("Scripting.FileSystemObject")
IF fs.fileExists(Server.MapPath(img)) THEN
SET myImg = loadpicture(Server.MapPath(img))
getImgHeight = round(myImg.height / 26.4583)
SET myImg = nothing
ELSE
getImgWidth="Fel!"
END IF
SET fs=Nothing
END Function
```

 

Orsaken till detta är att få sidan godkänd i validatorn som kräver widht och height på alla bilder.

Mvh martin

Permalänk: https://www.webforum.nu/p/1755407

## #14 — Peter S, 2006-01-29T11:00Z

Ha du testat getImgHeight/-Width separat så att de fungerar? Om inte kan du ju definiera dem som 

```
function getImgHeight(s)
  getImgHeight = 365
end function
```

...och se så att RegExp:arna fungerar.

Denna rad

```
Innlegg = Replace(Server.HTMLEncode(rs("info")),vbCrLf,"<br />")
```

...tyder på att det finns mer kod att visa. Ligger With-blocket innanför något annat kontrollblock? Som jag skrev innan tror jag ej att funktioner kan definieras i sådana block, vilket är fallet om du använder ovanstående kod.

Permalänk: https://www.webforum.nu/p/1755519

## #15 — paddan, 2006-01-29T12:07Z

Hej
Om jag tar min ursprungliga kod:
Innlegg=.Replace(Innlegg,"\<img src=""upload/textbilder/$1"" height="""& getImgHeight("/upload/textbilder/$1")&""" alt=""$1"" class=""text_bild"" /\>")
och byter ut $1 i height="""& getImgHeight("/upload/textbilder/$1")&""" till namnet på bilden så fungerar både getImgheight och getImgwidth så funktionerna fungerar. 
Men den verkar inte skicka rätt in i funktionen om jag använder $1.

Mvh martin

Permalänk: https://www.webforum.nu/p/1755534

## #16 — Peter S, 2006-01-29T12:30Z

Ja, det är därför mitt förslag fungerar. Problemet, som sagt, tror jag ligger i att du lagt f() i ett kontrollblock istället för globalt.

Permalänk: https://www.webforum.nu/p/1755541

## #17 — paddan, 2006-01-29T12:37Z

Du hade fullständigt rätt...jag la funtionen uppe ovanför html taggen... och sedan ändrade jag en liten sak bara..! med pattern taggen!

```
 .Pattern="\[bild\]([\w\W]*?)\[/bild\]"
	    Innlegg=.Replace(Innlegg,getref("f"))
```

```
Function getImgWidth(img)
Dim myImg, fs
SET fs= CreateObject("Scripting.FileSystemObject")
IF fs.fileExists(Server.MapPath(img)) THEN
SET myImg = loadpicture(Server.MapPath(img))
getImgWidth = round(myImg.width / 26.4583)
SET myImg = nothing
ELSE
getImgWidth="Fel!"
END IF
SET fs=Nothing
END Function

Function getImgHeight(img)
Dim myImg, fs
SET fs= CreateObject("Scripting.FileSystemObject")
IF fs.fileExists(Server.MapPath(img)) THEN
SET myImg = loadpicture(Server.MapPath(img))
getImgHeight = round(myImg.height / 26.4583)
SET myImg = nothing
ELSE
getImgHeight=img
END IF
SET fs=Nothing
END Function

function f(r,o,m,a)
	    f = "<img src=""/maxi/upload/textbilder/"& o &""" width="""& getImgWidth("/maxi/upload/textbilder/"& o &"") &""" height="""& getImgHeight("/maxi/upload/textbilder/"& o &"") &"""   alt="""& o &""" class=""text_bild"" />"
end functio
```

n

Tack för all hjälp...jäkligt snällt!

Permalänk: https://www.webforum.nu/p/1755545

## #18 — Peter S, 2006-01-29T12:44Z

Weee!  :bire 

Anledningen till att jag använder getref() är att det annars verkar vara svårt att läsa av captures ($1...$n). Ibland vill man ju faktiskt kunna skicka in dem i en funktion (getImgHeight/-Width i ditt fall).

'f' var bara ett exempel från min sida. Du kan ju döpa om funktionen till något mer passande namn.  :) 

Glöm inte att använda *acceptera som slutgiltigt svar*.

Permalänk: https://www.webforum.nu/p/1755548

---

Tråden på webben: https://www.webforum.nu/amne/asp/141577-replace-och-image-width
