编程开发 > ASP > 文章内容

asp画中画广告插入在每篇文章中的实现方法

2017-4-29编辑:ljnbset

asp画中画广告插入在每篇文章中的实现方法

尽管很多人给出了给每篇文章加上画中画广告的方法,但是这些所谓的方法,都不能真正地实现文字环绕在广告周围的“画中画”效果,只能左对其或者右对齐。现在要讨论的这个方法才能真正实现像新浪网、搜狐网那样的画中画广告效果。

首先说一下错误的div+CSS方法,希望大家别被误导:

?

1

2

3

4

<div id="outer" style="float:left;">

<div id="inner" style="float:left;margin:0;width:200px;height:200px;">div>

文字内容

div>

上面只能算作是左对齐的效果。还有很多借助表格或者iframe来实现的,也不外乎如此。

那么,怎么才能真正实现在每篇文章中批量添加画中画广告的效果呢?可以采用截取字段来进行,有两段代码。

第一段是分析文章内容字数,然后插入广告的代码:

?

1

2

3

4

5

6

7

8

9

10

11

12

Dim LeftContent,MidAdContent,RightContent,ModifyContent,headlen,tempStr,headAdStr,tailAdStr

''截取合适数量的字符串

if len(ArticleContent)<320 then

 headlen=200

else

 headlen=320

end if

tempStr=ArticleContent

LeftContent=InterceptString(tempStr,headlen)

'获得截取的文字内容

RightContent=Right(ArticleContent,Len(ArticleContent)-Len(LeftContent))

ModifyContent=LeftContent &"
">
"& RightContent

上面是通过DIV+JS 来插入广告的,广告代码放在ad.js文件中,也可以通过table+JS 或者直接用iframe的方式来插入。不管以那种方式,都必须设置其属性为左对齐或右对齐,这样才能保证为止环绕在广告周围。

接下的第二段就是画中画广告代码的判断了。

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

Function InterceptString(txt,length)

Dim x,y,ii,c,ischines,isascii,tempStr

txt=trim(txt)

x = len(txt)

y = 0

if x >= 1 then

 for ii = 1 to x

 c=asc(mid(txt,ii,1))

if c< 0 or c >255 then

  '说明是一个中文字符

 y = y + 2

 ischines=1

 isascii=0

else

  '说明是一个ascii码

 y = y + 1

 ischines=0

 isascii=1

end if

'如果长度已经大于定义子字符串长度,就判断是否包含敏感字符串是否分开

 if y >= length then

 if ischines=1 and StrCount(left(trim(txt),ii),")=StrCount(left(trim(txt),ii),"") then

 txt = left(trim(txt),ii) '"字符串限长

 exit for

  else

  if isascii=1 then x=x+1

  end if

 end if

 next

 InterceptString = txt

else

 InterceptString = ""

end if

End Function

'判断字符串出现的次数

Function StrCount(Str,SubStr)

 Dim iStrCount

 Dim iStrStart

 Dim iTemp

 iStrCount = 0

 iStrStart = 1

 iTemp = 0

 Str=LCase(Str)

 SubStr=LCase(SubStr)

 Do While iStrStart < Len(Str)

 iTemp = Instr(iStrStart,Str,SubStr,vbTextCompare)

 If iTemp <=0 Then

  iStrStart = Len(Str)

 Else

  iStrStart = iTemp + Len(SubStr)

   

  iStrCount = iStrCount + 1

 End If

 Loop

 StrCount = iStrCount

End Function

以新云网站管理系统为例。首先找到生长静态文章页面的代码文件/inc/NewsChannel.asp (其它CMS与此类似),在第248行 HtmlContent = Replace(HtmlContent, "{$ArticleContent}", ArticleContent) 的前面插入第一段代码,在页面中的适当为止插入第二段代码,然后将该行中的ArticleContent 改为ModifyContent 即可。

adodb.recordset.open(rs.open)方法参数详解

热点推荐

登录注册
触屏版电脑版网站地图