這篇文章主要分享了ASP替換、保存遠程圖片的函數代碼,需要的朋友可以參考下
ASP通過函數來實現替換、保存遠程圖片,完成自動採集圖片、提取圖片的功能,函數中自動判斷重複圖片,智能分析鏈接路徑,並轉成成相對的圖片地址保存在你指定的網站目錄中,我們可將此函數用在後台的編輯器中,當你複製了含有圖片的內容後,本代碼會自動幫你上傳圖片。同時本代碼也是採集程序中的重要處理函數,函數代碼如下:
- FunctionReplaceSaveRemoteFile(ConStr,strInstallDir,strChannelDir,SaveTf,TistUrl)
- IfConStr=$False$orConStr=orstrInstallDir=orstrChannelDir=Then
- ReplaceSaveRemoteFile=ConStr
- ExitFunction
- EndIf
- DimTempStr,TempStr2,TempStr3,Re,Matches,Match,Tempi,TempArray,TempArray2
- SetRe=NewRegexp
- Re.IgnoreCase=True
- Re.Global=True
- Re.Pattern=]>
- SetMatches=Re.Execute(ConStr)
- ForEachMatchinMatches
- IfTempStr<>then
- TempStr=TempStr&$Array$&Match.Value
- Else
- TempStr=Match.Value
- Endif
- Next
- IfTempStr<>Then
- TempArray=Split(TempStr,$Array$)
- TempStr=
- ForTempi=0ToUbound(TempArray)
- Re.Pattern=src/s*=/s*.+?/.(gif|jpg|bmp|jpeg|psd|png|svg|dxf|wmf|tiff)
- SetMatches=Re.Execute(TempArray(Tempi))
- ForEachMatchinMatches
- IfTempStr<>then
- TempStr=TempStr&$Array$&Match.Value
- Else
- TempStr=Match.Value
- Endif
- Next
- Next
- Endif
- IfTempStr<>Then
- Re.Pattern=src/s*=/s*
- TempStr=Re.Replace(TempStr,)
- EndIf
- SetMatches=nothing
- SetRe=nothing
- IfTempStr=orIsNull(TempStr)=TrueThen
- ReplaceSaveRemoteFile=ConStr
- Exitfunction
- Endif
- TempStr=Replace(TempStr,,)
- TempStr=Replace(TempStr,',)
- TempStr=Replace(TempStr,,)
- DimRemoteFileurl,SavePath,PathTemp,DtNow,strFileName,strFileType,ArrSaveFileName,RanNum,Arr_Path
- DtNow=Now()
- IfSaveTf=Truethen
- SavePath=strChannelDir&/&year(DtNow)&right(0&month(DtNow),2)&/
- response.write鏈接路徑:&savepath&
- Arr_Path=Split(SavePath,/)
- PathTemp=
- ForTempi=0ToUbound(Arr_Path)
- IfTempi=0Then
- PathTemp=Arr_Path(0)&/
- ElseIfTempi=Ubound(Arr_Path)Then
- ExitFor
- Else
- PathTemp=PathTemp&Arr_Path(Tempi)&/
- EndIf
- IfCheckDir(PathTemp)=FalseThen
- IfMakeNewsDir(PathTemp)=FalseThen
- SaveTf=False
- ExitFor
- EndIf
- EndIf
- Next
- EndIf
- '去掉重複圖片
- TempArray=Split(TempStr,$Array$)
- TempStr=
- ForTempi=0ToUbound(TempArray)
- IfInstr(Lcase(TempStr),Lcase(TempArray(Tempi)))<1Then
- TempStr=TempStr&$Array$&TempArray(Tempi)
- EndIf
- Next
- TempStr=Right(TempStr,Len(TempStr)-7)
- TempArray=Split(TempStr,$Array$)
- '轉換相對圖片地址
- TempStr=
- ForTempi=0ToUbound(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=
- '圖片替換/保存
- SetRe=NewRegexp
- Re.IgnoreCase=True
- Re.Global=True
- ForTempi=0ToUbound(TempArray2)
- RemoteFileUrl=TempArray2(Tempi)
- IfRemoteFileUrl<>$False$AndSaveTf=TrueThen'保存圖片
- ArrSaveFileName=Split(RemoteFileurl,.)
- strFileType=Lcase(ArrSaveFileName(Ubound(ArrSaveFileName)))'文件類型
- IfstrFileType=asporstrFileType=asaorstrFileType=aspxorstrFileType=cerorstrFileType=cdxorstrFileType=exeorstrFileType=rarorstrFileType=zipthen
- UploadFiles=
- ReplaceSaveRemoteFile=ConStr
- ExitFunction
- EndIf
- 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)
- IfSaveRemoteFile(SavePath&strFileName,RemoteFileUrl)=TrueThen
- '********************************
- 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
- EndIf
- ElseIfRemoteFileurl<>$False$andSaveTf=FalseThen'不保存圖片
- Re.Pattern=TempArray(Tempi)
- ConStr=Re.Replace(ConStr,RemoteFileUrl)
- UploadFiles=UploadFiles&|&RemoteFileUrl
- EndIf
- Next
- SetRe=nothing
- IfUploadFiles<>Then
- UploadFiles=Right(UploadFiles,Len(UploadFiles)-1)
- EndIf
- ReplaceSaveRemoteFile=ConStr
- Endfunction
函數參數說明:
ConStr:要替換的字符串
參數:SaveTf:是否保存文件,False不保存,True保存
參數: TistUrl:當前網頁地址
以上就是ASP替換、保存遠程圖片函數代碼,希望對大家的學習有所幫助。