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

'==================================================
'函数名:ReplaceSaveRemoteFile
'作  用:替换、保存远程图片
'参  数:ConStr ------ 要替换的字符串
'参  数:SaveTf ------ 是否保存文件,False不保存,True保存
'参  数: TistUrl------ 当前网页地址
'==================================================
Function ReplaceSaveRemoteFile(ConStr,strInstallDir,strChannelDir,SaveTf,TistUrl)
   If ConStr="$False$" or ConStr="" 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 ="<img.+?[^\>]>"
   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
         IncludePic=1'图片新闻
      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 & "<br>"
      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,"")
            Response.Flush()
            response.write "    图片保存地址:" & PathTemp & "<br>"
            if Thumb_WaterMark=1 then call SKThumb.AddWaterMark(PathTemp)'水印
         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

(0)

相关推荐

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

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

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

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

  • php 远程图片保存到本地的函数类

    <?php // // Function: 获取远程图片并把它保存到本地 // // // 确定您有把文件写入本地服务器的权限 // // // 变量说明: // $url 是远程图片的完整URL地址,不能为空. // $filename 是可选变量: 如果为空,本地文件名将基于时间和日期 // 自动生成. function GrabImage($url,$filename="") { if($url==""):return false;endif; if($

  • 用php获取远程图片并把它保存到本地的代码

    <?php function GrabImage($url,$filename="") {   if($url==""):return false;endif; if($filename=="") {     $ext=strrchr($url,".");     if($ext!=".gif" && $ext!=".jpg"):return false;endif

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

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

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

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

  • 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下实现替换远程文件为本地文件并保存远程文件的代码

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

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

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

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

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

  • php正则匹配文章中的远程图片地址并下载图片至本地

    使用php的正则表达式来实现: $content = '这里是文章内容,这里插入一张图片测试 <img src="XXXXXXXXXXXXXXXXXXXX">'; $content = stripslashes ( $content ); $img_array = array (); // 匹配所有远程图片 preg_match_all ( "/(src|SRC)=["|'| ]{0,}(http://(.*).(gif|jpg|jpeg|bmp|png

  • php将远程图片保存到本地服务器的实现代码

    php如何将远程图片本地化,本文分享了实现代码 <?php //站点根目录 $cfg_basedir = dirname(__FILE__); //停建目录属性 $cfg_dir_purview ='0755'; /*Get请求远程内容函数*/ $cookie_file = dirname(__FILE__).'/cookie.txt'; //COOKIE存放地址 function pget($url,$ref=false,$head=false){ $curl = curl_init(); /

随机推荐