ASP替换、保存远程图片实现代码

ASP通过函数来实现替换、保存远程图片,完成自动采集图片、提取图片的功能,函数中自动判断重复图片,智能分析链接路径,并转成成相对的图片地址保存在你指定的网站目录中,我们可将此函数用在后台的编辑器中,当你复制了含有图片的内容后,本代码会自动帮你上传图片。同时本代码也是采集程序中的重要处理函数,函数代码如下:

Function ReplaceSaveRemoteFile(ConStr,strInstallDir,strChannelDir,SaveTf,TistUrl)
If ConStr="$False$" or ConStr="" or strInstallDir="" or strChannelDir="" Then
ReplaceSaveRemoteFile=ConStr
Exit Function
End If
Dim TempStr,TempStr2,TempStr3,Re,Matches,Match,Tempi,TempArray,TempArray2
Set Re = New Regexp
Re.IgnoreCase = True
Re.Global = True
Re.Pattern ="]>"
Set Matches =Re.Execute(ConStr)
For Each Match in Matches
If TempStr<>"" then
TempStr=TempStr & "$Array$" & Match.Value
Else
TempStr=Match.Value
End if
Next
If TempStr<>"" Then
TempArray=Split(TempStr,"$Array$")
TempStr=""
For Tempi=0 To Ubound(TempArray)
Re.Pattern ="src\s*=\s*.+?\.(gif|jpg|bmp|jpeg|psd|png|svg|dxf|wmf|tiff)"
Set Matches =Re.Execute(TempArray(Tempi))
For Each Match in Matches
If TempStr<>"" then
TempStr=TempStr & "$Array$" & Match.Value
Else
TempStr=Match.Value
End if
Next
Next
End if
If TempStr<>"" Then
Re.Pattern ="src\s*=\s*"
TempStr=Re.Replace(TempStr,"")
End If
Set Matches=nothing
Set Re=nothing
If TempStr="" or IsNull(TempStr)=True Then
ReplaceSaveRemoteFile=ConStr
Exit function
End if
TempStr=Replace(TempStr,"""","")
TempStr=Replace(TempStr,"'","")
TempStr=Replace(TempStr," ","")
Dim RemoteFileurl,SavePath,PathTemp,DtNow,strFileName,strFileType,ArrSaveFileName,RanNum,Arr_Path
DtNow=Now()
If SaveTf=True then
SavePath= strChannelDir & "/" & year(DtNow) & right("0" & month(DtNow),2) & "/"
  response.write "链接路径:" & savepath & ""
Arr_Path=Split(SavePath,"/")
PathTemp=""
For Tempi=0 To Ubound(Arr_Path)
If Tempi=0 Then
PathTemp=Arr_Path(0) & "/"
ElseIf Tempi=Ubound(Arr_Path) Then
Exit For
Else
PathTemp=PathTemp & Arr_Path(Tempi) & "/"
End If
If CheckDir(PathTemp)=False Then
If MakeNewsDir(PathTemp)=False Then
SaveTf=False
Exit For
End If
End If
Next
End If
'去掉重复图片
TempArray=Split(TempStr,"$Array$")
TempStr=""
For Tempi=0 To Ubound(TempArray)
If Instr(Lcase(TempStr),Lcase(TempArray(Tempi)))<1 Then
TempStr=TempStr & "$Array$" & TempArray(Tempi)
End If
Next
TempStr=Right(TempStr,Len(TempStr)-7)
TempArray=Split(TempStr,"$Array$")
'转换相对图片地址
TempStr=""
For Tempi=0 To Ubound(TempArray)
TempStr=TempStr & "$Array$" & DefiniteUrl(TempArray(Tempi),TistUrl)
Next
TempStr=Right(TempStr,Len(TempStr)-7)
TempStr=Replace(TempStr,Chr(0),"")
TempArray2=Split(TempStr,"$Array$")
TempStr=""
'图片替换/保存
Set Re = New Regexp
Re.IgnoreCase = True
Re.Global = True
For Tempi=0 To Ubound(TempArray2)
RemoteFileUrl=TempArray2(Tempi)
If RemoteFileUrl<>"$False$" And SaveTf=True Then'保存图片
ArrSaveFileName = Split(RemoteFileurl,".")
  strFileType=Lcase(ArrSaveFileName(Ubound(ArrSaveFileName)))'文件类型
If strFileType="asp" or strFileType="asa" or strFileType="aspx" or strFileType="cer" or strFileType="cdx" or strFileType="exe" or strFileType="rar" or strFileType="zip" then
UploadFiles=""
ReplaceSaveRemoteFile=ConStr
Exit Function
End If

Randomize
RanNum=Int(900*Rnd)+100
  strFileName = year(DtNow) & right("0" & month(DtNow),2) & right("0" & day(DtNow),2) & right("0" & hour(DtNow),2) & right("0" & minute(DtNow),2) & right("0" & second(DtNow),2) & ranNum & "." & strFileType
Re.Pattern =TempArray(Tempi)
  If SaveRemoteFile(SavePath & strFileName,RemoteFileUrl)=True Then
'********************************
PathTemp=SavePath & strFileName
ConStr=Re.Replace(ConStr,PathTemp)
Re.Pattern=strInstallDir & strChannelDir & "/"
UploadFiles=UploadFiles & "|" & Re.Replace(SavePath &strFileName,"")
Else
PathTemp=RemoteFileUrl
ConStr=Re.Replace(ConStr,PathTemp)
'UploadFiles=UploadFiles & "|" & RemoteFileUrl
End If
ElseIf RemoteFileurl<>"$False$" and SaveTf=False Then'不保存图片
Re.Pattern =TempArray(Tempi)
ConStr=Re.Replace(ConStr,RemoteFileUrl)
UploadFiles=UploadFiles & "|" & RemoteFileUrl
End If
Next
Set Re=nothing
If UploadFiles<>"" Then
UploadFiles=Right(UploadFiles,Len(UploadFiles)-1)
End If
ReplaceSaveRemoteFile=ConStr
End function

函数参数说明:
ConStr:要替换的字符串
参 数:SaveTf:是否保存文件,False不保存,True保存
参 数: TistUrl:当前网页地址

以上就是ASP替换、保存远程图片函数代码,希望对大家的学习有所帮助。

(0)

相关推荐

  • asp.net高效替换大容量字符实现代码

    一般进行替换操作都这样: 复制代码 代码如下: str=str.replace(字符串一,字符串二) 不难发现一个问题,如果str要循环替换很多次,下一次替换时会累加上上次替换的内容,并且全遍历一次,如果字符串二很多,替换的过程就像阶梯效果,越来越大,所以速度越来越慢.要解决这个问题只能找另外的方法替换这种表达方式. 如何以更高效率代替这种操作? 思路如下: 每次替换完后,在下次替换时先排除这次替换的内容,累加本次替换的内容. 复制代码 代码如下: public Regex returnMatc

  • asp常用的正则表达式实现字符串的替换

    去除html标签正则<\/*[^<>]*>Function LoseHtml(ContentStr)     Dim ClsTempLoseStr,RegEx         ClsTempLoseStr = Cstr(ContentStr)     Set RegEx = New RegExp         RegEx.Pattern = "<\/*[^<>]*>"         RegEx.IgnoreCase = True   

  • asp.net(c#)判断远程图片是否存在

    复制代码 代码如下: private int GetUrlError(string curl) { int num = 200; if(this.method==1) { HttpWebRequest request=(HttpWebRequest) WebRequest.Create(new Uri(curl)); ServicePointManager.Expect100Continue=false; try { ((HttpWebResponse)request.GetResponse()

  • asp+Access通用的自动替换数据库中的字符串

    当初只是为了玩玩写的,没想到写了之后不断有人询问,所以改写了一下代码,完善了一下,支持了正则替换,避开了会导致出错的二进制(ole对象),并且做了一个EXE的程序.感谢虚拟帮忙. 附asp代码: 复制代码 代码如下: <%     '####################################     '批量替换数据库内容2008-3-17     '替换是不可逆的,所以操作前做好能备份     '####################################     Di

  • ASP正则函数替换分页后的参数

    Function DRexPage(Str)     Dim RegEx     If IsNull(Str) Or Str="" Then Exit Function    Set RegEx=New RegExp         RegEx.IgnoreCase=True        RegEx.pattern="(\&)?page=(\d)+"        DRexPage=regEx.replace(Str,"")  '(St

  • ASP保存远程图片到本地 同时取得第一张图片并创建缩略图的代码

    采集中 或者 在线添加文章中 都可以用到此功能 俺自己在baidu上搜索的保存远程图片到本地的代码 感觉比较难用点 而且没有现成的比较全的代码 俺也看不懂 俺从 SNA新闻采集系统 For 3.62 (程序制作:ansir)里提取了点函数 用下 比较简单好用 以下是函数 程序代码  复制代码 代码如下: <% '================================================== '函数名:CheckDir2 '作 用:检查文件夹是否存在 '参 数:FolderP

  • asp.net保存远程图片的代码

    注意:并没有实现CSS中的图片采集,且图片的正则还有待完善. 复制代码 代码如下: using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using

  • asp 图片正则 替换,替换前检查图片是不是本地地址的方法

    直接用正则替换,但没有判断功能 Function FormatImg(content) dim re Set re=new RegExp re.IgnoreCase =true re.Global=True re.Pattern="(script)" Content=re.Replace(Content,"script") re.Pattern="<img.[^>]*src(=| )(.[^>]*)>" Content=r

  • ASP替换、保存远程图片实现代码

    ASP通过函数来实现替换.保存远程图片,完成自动采集图片.提取图片的功能,函数中自动判断重复图片,智能分析链接路径,并转成成相对的图片地址保存在你指定的网站目录中,我们可将此函数用在后台的编辑器中,当你复制了含有图片的内容后,本代码会自动帮你上传图片.同时本代码也是采集程序中的重要处理函数,函数代码如下: Function ReplaceSaveRemoteFile(ConStr,strInstallDir,strChannelDir,SaveTf,TistUrl) If ConStr="$Fa

  • ReplaceSaveRemoteFile 替换、保存远程图片 的代码

    '================================================== '函数名:ReplaceSaveRemoteFile '作  用:替换.保存远程图片 '参  数:ConStr ------ 要替换的字符串 '参  数:SaveTf ------ 是否保存文件,False不保存,True保存 '参  数: TistUrl------ 当前网页地址 '================================================== Func

  • asp下实现替换远程文件为本地文件并保存远程文件的代码

    1.将下面的文本文件下载,并将.TXT改为remote.asp,里面有具体设置方法 复制代码 代码如下: <%  '添加资源时是否保存远程图片 Const sSaveFileSelect=True '远程图片保存目录,结尾请不要加"/" Const sSaveFilePath="/images/News" '远程图片保存类型 Const sFileExt="jpg|gif|bmp|png" '////////////////////////

  • 保存远程图片函数修改正版

    趁今天有空,修正了一下这个函数,经测试,在本地服务器通过,在空间商服务器也可正常使用,没发现错误.我的卡巴斯基不报毒了.^_^ 只要修改一下,这个函数是放在哪个网站都适用的.在此只与添加图片为例说明一下调用方法,其它位置方法类似. 在我本机测试成功,由于现在连不上空间的FTP,所以无办在空间上测试,发现问题请到群中提出. 一.把下面函数放到Ft_admin_conn.asp的最后 '================================== '=函 数 名:saveimgfile '=

  • SaveRemoteFile函数之asp实现保存远程的文件到本地的代码

    '================================================== '过程名:SaveRemoteFile '作  用:保存远程的文件到本地 '参  数:LocalFileName ------ 本地文件名 '参  数:RemoteFileUrl ------ 远程文件URL '================================================== Function SaveRemoteFile(LocalFileName,Rem

  • Android中布局保存成图片实例代码

    一.前言 有一个朋友问做过截屏的小功能没,自己没有做过.但是想了一下,实现的过程.实现截屏就是为了截取咱们应用中的部分布局,然后实现将保存在本地,或将其分享,或将其通过第三方的平台分享出去.自己可能是受了截屏这两个字的影响,想当然的去梳理自己的实现思路. 1:截屏,调用系统的截屏功能区实现截屏. 2:对图片进行处理:截屏是截取的手机的全屏,因为我们是需要截取我们的应用的某一部分,所以我们需要去通过剪切裁剪,去裁剪出自己想要保留的一部分(实质也就是保存布局). 3:后续也许还要处理系统截屏功能本身

  • php下保存远程图片到本地的办法

    今天在整理资料的时候发现以前找到的一个函数,通过这个函数我们就可以实现上面的功能. 主要函数: 复制代码 代码如下: function GrabImage($url,$filename="") { if($url=="") return false; if($filename=="") { $ext=strrchr($url,"."); if($ext!=".gif" && $ext!=&q

  • asp.net采集网页图片的具体方法

    在网上找了下大多都是通过字符串操作找出img标签,这种方式操作起来比较麻烦,而且代码看起来比较累.这里我用的方法是通过WebBrowser来加载一个页面,然后HTMLDocument类来操作省去了字符串操作的步骤,直接调用GetElementsByTagName把所有图片地址返回到一个HtmlElementCollection对象里.代码如下: 复制代码 代码如下: using System;using System.Collections.Generic;using System.Linq;u

随机推荐