asp使用正则自动解析图片地址并保存(2)

时间:2007-08-17 11:29:00 

二、下载图片并保存在服务器上

首先使用xmlhttp的方法来获得图片的内容


function getHTTPPage(url) 
 on error resume next 
 dim http 
 set http=server.createobject("MSXML2.XMLHTTP")  Http.open "GET",url,false 
 Http.send() 
 if Http.readystate<>4 then  
 exit function 
 end if 
 getHTTPPage=Http.responseBody 
 set http=nothing 
 if err.number<>0 then err.Clear  
end function 


取得了图片的内容要保存,给人一种感觉是用FSO来作就可以了,但实际上不行,这样保存程序就会出错,因为FSO不支持流式的文件,所以我们要调用另一个对象:ADO.STREM。

具体的过程如下:


function saveimage(from,tofile)
 dim geturl,objStream,imgs
 geturl=trim(from)
 imgs=gethttppage(geturl)’取得图片的具休内容的过程
 Set objStream = Server.CreateObject("ADODB.Stream")’建立ADODB.Stream对象,必须要ADO 2.5以上版本
 objStream.Type =1’以二进制模式打开
 objStream.Open
 objstream.write imgs’将字符串内容写入缓冲
 objstream.SaveToFile server.mappath(tofile),2’-将缓冲的内容写入文件
 objstream.Close()’关闭对象
 set objstream=nothing
end function



所以只要用一个循环来把刚才取得的地址中的图片全部保存下来,具体过程如下:


arrimg=split(PicStr(str),"||") ’分割字串,取得里面地址列表
allimg=""
newimg=""
for i=1 to ubound(arrimg)
if arrimg(i)<>"" and instr(allimg,arrimg(i))<1 then ’看这个图片是否已经下载过
fname=baseurl&cstr(i&mid(arrimg(i),instrrev(arrimg(i),".")))
saveimage(arrimg(i),fname)‘保存地址的函数,过程见上面
allimg=allimg&"||"&arrimg(i) ’把保存下来的图片的地址串回起来,以确定要替换的地址
newimg=newimg&"||"&fname ’把本地的地址串回起来
end if
next



第三步就是替换原来的地址了。具体的过程就是下面了:

arrnew=split(newimg,"||") ’取得原来的图片地址列表
arrall=split(allimg,"||") ’取得已经保存下来的图片的地址列表
for i=1 to ubound(arrnew) ’执行循环替换原来的地址
 strs=replace(strs,arrall(i),arrnew(i))
next


%>


标签:正则,正则表达式,图片,远程,xml
0
投稿

猜你喜欢

  • 如何利用python将Xmind用例转为Excel用例

    2022-06-18 19:18:46
  • 对python中的装包与解包实例详解

    2022-05-08 11:57:59
  • 通过不同的CSS设计字体大小来提高用户体验

    2008-12-10 19:17:00
  • Python中字符串对象语法分享

    2022-04-19 14:48:34
  • js中arguments的用法(实例讲解)

    2024-06-15 08:20:08
  • php出现Cannot modify header information问题的解决方法大全

    2024-05-02 17:35:21
  • python版本五子棋的实现代码

    2021-05-17 06:04:23
  • MYSQL初学者扫盲

    2009-02-27 13:15:00
  • vue组件发布到npm简单步骤

    2024-05-09 09:38:57
  • css表单中textarea域背景图片设置方法

    2008-04-21 13:56:00
  • 使用php数据缓存技术提高执行效率

    2023-05-24 23:14:24
  • 那些被我遗忘掉的XHTML标签们

    2008-06-07 14:27:00
  • 36个折纸风格logo设计

    2009-09-17 13:13:00
  • CentOS 6.3安装配置nginx+php+mysql

    2023-11-24 11:11:33
  • Python实现字典序列ChainMap

    2022-07-01 21:34:56
  • win2008下mysql8.0.11升级mysql8.0.17版本详细步骤

    2024-01-13 18:04:32
  • 使用 Python 实现文件递归遍历的三种方式

    2022-08-19 18:49:08
  • Python实现的检测网站挂马程序

    2023-11-21 16:39:38
  • 教你漂亮打印Pandas DataFrames和Series

    2022-11-10 19:08:56
  • rollup3.x+vue2打包组件的实现

    2024-05-22 10:43:40
  • asp之家 网络编程 m.aspxhome.com