BBS|论坛

注册

 

发新话题 回复该主题

[原创]精品贈送:可结合风讯的城市天气预报标签函数。 [复制链接] 查看:9677回复:36

1#

[原创]精品贈送:可结合风讯的城市天气预报标签函数。

效果:

天气:多云
温度:23 ℃~14 ℃
风向:西风 转 西南风
风力:4-5级


Response.write GetWeather("苏州","Sina")


Function GetWeather(CityStr,SiteKey)
dim Rurl,TakenHTML
if SiteKey="Sohu" then
  Rurl="
http://weather.news.sohu.com/hd.php"
else
  Rurl="
http://weather.sina.com.cn/images/figureWeather/map/eastOfChina.html"
end if
TakenHTML = GetPageContent(Rurl)
Response.Flush
Select case SiteKey
case "Sina"
  GetWeather=GetContent(TakenHTML,"drawcitys(' 城市:"&CityStr&"市 <br>","'); return true;",0)
case "Sohu"
  GetWeather=GetContent(TakenHTML,"城市:"&CityStr&"",""">",0)
case else
  GetWeather=GetContent(TakenHTML,"drawcitys(' 城市:"&CityStr&"市 <br>","'); return true;",0)
end Select
End Function

Function GetPageContent(Url)
Dim HTTPObj
On Error Resume Next
Set HTTPObj = Server.CreateObject("Microsoft.XMLHTTP")
With HTTPObj
  .Open "Get", Url, False, "", ""
  .Send
End With
if HTTPObj.Readystate <> 4 then
  Set HTTPObj = Nothing
  GetPageContent = False
  Exit Function
end if
GetPageContent = ResponseStrToStr(HTTPObj.ResponseBody)
Set HTTPObj = Nothing
End Function

Function ResponseStrToStr(BodyStr)
Dim ADOStreamObj
Set ADOStreamObj = Server.CreateObject("ADODB.Stream")
ADOStreamObj.Type = 1
ADOStreamObj.Mode = 3
ADOStreamObj.Open
ADOStreamObj.Write BodyStr
ADOStreamObj.Position = 0
ADOStreamObj.Type = 2
ADOStreamObj.Charset = "GB2312"
ResponseStrToStr = ADOStreamObj.ReadText
ADOStreamObj.Close
Set ADOStreamObj = Nothing
End Function
Function GetContent(Str,StartStr,LastStr,Flag)
Dim SearchIndex
On Error Resume Next
if Instr(LCase(Str),LCase(StartStr)) > 0 then
  Select Case Flag
   Case 0
    GetContent = Right(Str,Len(Str) - Instr(LCase(Str),LCase(StartStr)) - Len(StartStr) + 1)
    SearchIndex = Instr(LCase(GetContent),LCase(LastStr))
    if SearchIndex <= 0 then
     GetContent = ""
    else
     GetContent = Left(GetContent,SearchIndex - 1)
    end if
   Case 1
    GetContent = Right(Str,Len(Str) - Instr(LCase(Str),LCase(StartStr)) + 1)
    GetContent = Left(GetContent,Instr(LCase(GetContent),LCase(LastStr)) + Len(LastStr) - 1)
   Case 2
    GetContent = Right(Str,Len(Str) - Instr(lcase(Str),LCase(StartStr))-Len(StartStr) + 1)
   Case else
    GetContent = ""
  End Select
else
  GetContent = ""
end if
if Err.Number <> 0 then GetContent = ""
End Function

[此贴子已经被作者于2005-4-20 16:44:04编辑过]

分享 转发
TOP
2#

嘿嘿。我要精华和金币。吼吼。。。
TOP
3#

效果,效果,。。。。看到效果就给你加
做人要厚道,做站要低调。
TOP
4#

风讯研究室QQ群:2202324

汗。。。。
TOP
5#

很好  行货
TOP
6#

呵呵,我已经试过了,拿来就能用,直接执行就可以了
TOP
7#

[推荐]这个网站是用2。0做的很好进去看 看

呵呵。。本来就是嘛。

存为ASP文件就能用了。自已改成标签就行了。

[此贴子已经被作者于2005-4-20 16:57:10编辑过]

TOP
8#

你应该说的详细一些,要不然很多人可能一头雾水呀.比如,插在什么地方
TOP
9#

你给他们做个详细的制作步骤吧。
做人要厚道,做站要低调。
TOP
10#

直接插在网页里方便

TOP
发新话题 回复该主题