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