이 기능은 수집 중에 또는 온라인으로 기사를 추가할 때 사용할 수 있습니다. 이 기능은 수집 중에 또는 온라인으로 기사를 추가할 때 사용할 수 있습니다.
원격 이미지를 로컬에 저장하기 위해 Baidu에서 검색한 코드는 사용하기가 약간 어려운 것 같고, 이해할 수 없는 기성품 및 완전한 코드가 없습니다.
3.62용 SNA 뉴스 수집 시스템(프로그램: ansir)에서 일부 기능을 추출하여 사용했는데, 이는 비교적 간단하고 사용하기 쉽습니다.
다음은 기능입니다
프로그램 코드
다음과 같이 코드 코드를 복사합니다.
<%
'================================================ = =
'함수 이름: CheckDir2
'기능: 폴더가 존재하는지 확인
'매개변수: FolderPath ------폴더 주소
'================================================ = =
함수 CheckDir2(FolderPath별)
희미한 fso
폴더 경로=Server.MapPath(.)&/&폴더 경로
fso = Server.CreateObject(Scripting.FileSystemObject) 설정
fso.FolderExists(FolderPath)인 경우
'존재하다
CheckDir2 = 참
또 다른
'존재하지 않는다
CheckDir2 = 거짓
다음과 같은 경우 종료
fso = 아무것도 설정하지 않음
기능 종료
'================================================ = =
'함수 이름: MakeNewsDir2
'기능: 새 폴더 만들기
'매개변수: 폴더 이름 ------폴더 이름
'================================================ = =
함수 MakeNewsDir2(폴더명별)
희미한 fso
fso = Server.CreateObject(Scripting.FileSystemObject) 설정
fso.CreateFolder(Server.MapPath(.) &/ &폴더 이름)
fso.FolderExists(Server.MapPath(.) &/ &foldername) 경우
MakeNewsDir2 = 참
또 다른
MakeNewsDir2 = 거짓
종료 조건
fso = 아무것도 설정하지 않음
기능 종료
'================================================ = =
'함수 이름: DefiniteUrl
'기능: 상대주소를 절대주소로 변환
'Parameter: PrimitiveUrl ------ 변환할 상대 주소
'매개변수: ConsultUrl ------현재 웹페이지 주소
'================================================ = =
함수 DefiniteUrl(Byval PrimitiveUrl,Byval ConsultUrl)
Dim ConTemp, PriTemp, Pi, Ci, PriArray, ConArray
PrimitiveUrl= 또는 ConsultUrl= 또는 PrimitiveUrl=$False$인 경우 그런 다음
DefiniteUrl=$False$
종료 기능
종료 조건
왼쪽(ConsultUrl,7)<>HTTP:// 및 왼쪽(ConsultUrl,7)<>http:// 그러면
ConsultUrl= http:// & ConsultUrl
종료 조건
ConsultUrl=바꾸기(ConsultUrl,://,://)
맞다면(ConsultUrl,1)<>/ 그러면
Instr(ConsultUrl,/)>0이면
Instr(Right(ConsultUrl,Len(ConsultUrl)-InstrRev(ConsultUrl,/)),.)>0이면
또 다른
ConsultUrl=ConsultUrl & /
종료 조건
또 다른
ConsultUrl=ConsultUrl & /
종료 조건
종료 조건
ConArray=분할(ConsultUrl,/)
Left(PrimitiveUrl,7) = http://이면
DefiniteUrl=바꾸기(PrimitiveUrl,://,://)
ElseIf Left(PrimitiveUrl,1) = / 그런 다음
DefiniteUrl=ConArray(0) 및 PrimitiveUrl
ElseIf Left(PrimitiveUrl,2)=./ 그런 다음
DefiniteUrl=ConArray(0) & Right(PrimitiveUrl,Len(PrimitiveUrl)-1)
ElseIf Left(PrimitiveUrl,3)=../ 그때
남은 동안 수행(PrimitiveUrl,3)=../
PrimitiveUrl=오른쪽(PrimitiveUrl,Len(PrimitiveUrl)-3)
파이=파이+1
고리
Ci=0 ~ (Ubound(ConArray)-1-Pi)의 경우
DefiniteUrl<>이면
DefiniteUrl=DefiniteUrl & / & ConArray(Ci)
또 다른
DefiniteUrl=ConArray(Ci)
종료 조건
다음
DefiniteUrl=DefiniteUrl & / & PrimitiveUrl
또 다른
Instr(PrimitiveUrl,/)>0이면
PriArray=분할(PrimitiveUrl,/)
Instr(PriArray(0),.)>0이면
If Right(PrimitiveUrl,1)=/ 그렇다면
DefiniteUrl=http:// 및 PrimitiveUrl
또 다른
Instr(PriArray(Ubound(PriArray)-1),.)>0이면
DefiniteUrl=http:// 및 PrimitiveUrl
또 다른
DefiniteUrl=http:// & PrimitiveUrl & /
종료 조건
종료 조건
또 다른
If Right(ConsultUrl,1)=/ 그렇다면
DefiniteUrl=ConsultUrl 및 PrimitiveUrl
또 다른
DefiniteUrl=왼쪽(ConsultUrl,InstrRev(ConsultUrl,/)) & PrimitiveUrl
종료 조건
종료 조건
또 다른
Instr(PrimitiveUrl,.)>0이면
If Right(ConsultUrl,1)=/ 그렇다면
right(PrimitiveUrl,3)=.cn 또는 right(PrimitiveUrl,3)=com 또는 right(PrimitiveUrl,3)=net 또는 right(PrimitiveUrl,3)=org인 경우 그런 다음
DefiniteUrl=http:// & PrimitiveUrl & /
또 다른
DefiniteUrl=ConsultUrl 및 PrimitiveUrl
종료 조건
또 다른
right(PrimitiveUrl,3)=.cn 또는 right(PrimitiveUrl,3)=com 또는 right(PrimitiveUrl,3)=net 또는 right(PrimitiveUrl,3)=org인 경우 그런 다음
DefiniteUrl=http:// & PrimitiveUrl & /
또 다른
DefiniteUrl=Left(ConsultUrl,InstrRev(ConsultUrl,/)) & / & PrimitiveUrl
종료 조건
종료 조건
또 다른
If Right(ConsultUrl,1)=/ 그렇다면
DefiniteUrl=ConsultUrl & PrimitiveUrl & /
또 다른
DefiniteUrl=Left(ConsultUrl,InstrRev(ConsultUrl,/)) & / & PrimitiveUrl & /
종료 조건
종료 조건
종료 조건
종료 조건
Left(DefiniteUrl,1)=/이면
DefiniteUrl=오른쪽(DefiniteUrl,Len(DefiniteUrl)-1)
다음과 같은 경우 종료
DefiniteUrl<>이면
DefiniteUrl=바꾸기(DefiniteUrl,//,/)
DefiniteUrl=바꾸기(DefiniteUrl,://,://)
또 다른
DefiniteUrl=$False$
종료 조건
기능 종료
'================================================ = =
'함수 이름: 바꾸기SaveRemoteFile
'기능: 원격 파일 교체 및 저장
'매개변수: ConStr ------ 교체할 문자열
'매개변수: StarStr ----- 선행
'매개변수: OverStr -----
'매개변수:IncluL ------
'매개변수:IncluR ------
'Parameter: SaveTf ------ 파일 저장 여부, False는 저장하지 않음, True는 저장
'매개변수: SaveFilePath-저장 폴더
'매개변수: TistUrl------ 현재 웹페이지 주소
'================================================ = =
함수 바꾸기SaveRemoteFile(ConStr,StartStr,OverStr,IncluL,IncluR,SaveTf,SaveFilePath,TistUrl)
ConStr=$False$ 또는 ConStr=이면
바꾸기SaveRemoteFile=$False$
종료 기능
종료 조건
희미한 TempStr, TempStr2, ReF, 일치, 일치, Tempi, TempArray, TempArray2, OverTypeArray
ReF = 새 정규식 설정
ReF.IgnoreCase = 참
ReF.Global = 참
ReF.Pattern = (&StartStr&).+?(&OverStr&)
일치 항목 설정 =ReF.Execute(ConStr)
경기의 각 경기에 대해
Instr(TempStr,Match.Value)=0인 경우
TempStr<>이면
TempStr=TempStr & $Array$ & Match.Value
또 다른
TempStr=일치.값
다음과 같은 경우 종료
종료 조건
다음
일치 항목 설정=없음
ReF=아무것도 설정하지 않음
TempStr= 또는 IsNull(TempStr)=True이면
바꾸기SaveRemoteFile=ConStr
종료 기능
다음과 같은 경우 종료
IncluL=False인 경우
TempStr=바꾸기(TempStr,StartStr,)
다음과 같은 경우 종료
InclR=False인 경우
Instr(OverStr,|)>0이면
OverTypeArray=분할(OverStr,|)
Tempi=0의 경우 Ubound(OverTypeArray)로
TempStr=바꾸기(TempStr,OverTypeArray(템피),)
다음
또 다른
TempStr=바꾸기(TempStr,OverStr,)
종료 조건
다음과 같은 경우 종료
TempStr=바꾸기(TempStr,,)
TempStr=바꾸기(TempStr,',)
Dim RemoteFile,RemoteFileurl,SaveFileName,SaveFileType,ArrSaveFileName,RanNum
Right(SaveFilePath,1)=/인 경우
SaveFilePath=왼쪽(SaveFilePath,Len(SaveFilePath)-1)
종료 조건
SaveTf=True인 경우
CheckDir2(SaveFilePath)=False인 경우
MakeNewsDir2(SaveFilePath)=False인 경우
SaveTf=거짓
종료 조건
종료 조건
종료 조건
SaveFilePath=저장파일 경로 & /
'이미지 변환/저장
TempArray=분할(TempStr,$Array$)
Tempi=0의 경우 Ubound(TempArray)로
RemoteFileurl=DefiniteUrl(TempArray(Tempi),TistUrl)
RemoteFileurl<>$False$ 및 SaveTf=True이면 사진을 저장합니다.
ArrSaveFileName = 분할(RemoteFileurl,.)
SaveFileType=ArrSaveFileName(Ubound(ArrSaveFileName))'파일 형식
RanNum=Int(900*Rnd)+100
SaveFileName = SaveFilePath&연도(현재)&월(현재)&일(현재)&시간(현재)&분(현재)&초(현재)&ranNum&.&SaveFileType
SaveRemoteFile 호출(SaveFileName,RemoteFileurl)
ConStr=바꾸기(ConStr,TempArray(Tempi),SaveFileName)
ElseIf RemoteFileurl<>$False$ 및 SaveTf=False Then'이미지를 저장하지 마십시오.
SaveFileName=RemoteFileUrl
ConStr=바꾸기(ConStr,TempArray(Tempi),SaveFileName)
종료 조건
RemoteFileUrl<>$False$인 경우
UploadFiles=이면
UploadFiles=저장파일 이름
또 다른
UploadFiles=UploadFiles & & SaveFileName |
다음과 같은 경우 종료
종료 조건
다음
바꾸기SaveRemoteFile=ConStr
기능 종료
'================================================ = =
'프로세스 이름: SaveRemoteFile
'기능: 원격 파일을 로컬에 저장
'매개변수: LocalFileName ------ 로컬 파일 이름
'매개변수: RemoteFileUrl ------ 원격 파일 URL
'================================================ = =
하위 SaveRemoteFile(LocalFileName,RemoteFileUrl)
희미한 광고, 검색, GetRemoteData
검색 설정 = Server.CreateObject(Microsoft.XMLHTTP)
검색 포함
.Open Get, RemoteFileUrl, False, ,
.보내다
GetRemoteData = .ResponseBody
끝
검색 설정 = 없음
광고 설정 = Server.CreateObject(Adodb.Stream)
광고 포함
.유형 = 1
.열려 있는
.GetRemoteData 쓰기
.SaveToFile 서버.MapPath(LocalFileName),2
.취소()
.닫다()
끝
광고 설정 = 없음
서브 끝
'================================================ = =
'프로세스 이름: GetImg
'기능: 기사의 첫 번째 사진 가져오기
'매개변수: str ------ 기사 내용
'매개변수: strpath ------ 사진을 저장할 경로
'================================================ = =
함수 GetImg(str,strpath)
objregEx = 새로운 RegExp 설정
objregEx.IgnoreCase = true
objregEx.Global = true
zzstr=&strpath&(.+?)/.(jpg|gif|png|bmp)
objregEx.Pattern = zzstr
일치 항목 설정 = objregEx.execute(str)
경기의 각 경기마다
retstr = retstr &|& Match.Value
다음
retstr<>이면
Imglist=분할(재설정,|)
Imgone=교체(Imglist(1),strpath,)
GetImg=이미 존재하지 않음
또 다른
GetImg=
종료하면
함수 종료
%>
다음은 예시입니다.
프로그램 코드
다음과 같이 코드 코드를 복사합니다.
<form id=form1 name=form1 method=post action=?action=test>
<텍스트 영역 이름=본문 열=50행=5ID=본문>
<img 높이=180 src=http://cimg2.163.com/cnews/2006/8/21/200608210738371d0a8.jpg 너비=240 테두리=0 />
<img class=leftsrc=http://news.163.com/img/netease_logo.gif 폭=114 />
<img 높이=60 src=http://cimg2.163.com/cnews/2006/8/18/2006081811465369976.jpg 너비=120 테두리=0 />
<img height=60 /></textarea>
<입력 유형=제출 이름=제출 값=제출/>
</form>
<%
request.QueryString(action)=test인 경우
'그림을 시작하는 문자열
FilesStartStr=src=
'그림 끝에 문자열
FilesOverStr=gif|jpg|bmp
'사진을 저장할 폴더
파일 경로=qq
'이미지가 저장된 웹사이트의 URL을 가져와서 절대 경로인지 상대 경로인지 자동으로 판단합니다. 이 예에서는 이미지가 절대 주소이므로 ../images/123이면 쓸모가 없습니다. gif의 경우 NEWURL을 지정해야 합니다.
NewsUrl=http://news.163.com
'기사 내용 가져오기
내용 =Request.Form(본문)
'사진 저장 시작
Content=ReplaceSaveRemoteFile(Content,FilesStartStr,FilesOverStr,False,True,True,FilesPath,NewsUrl)
'뉴스의 첫 번째 사진에 대한 썸네일 만들기
if GetImg(Content,FilesPath)<> 그러면
Imgsrc=GetImg(콘텐츠,파일 경로)
Imgsrc=교체(Imgsrc,FilesPath,)
Jpeg = Server.CreateObject(Persits.Jpeg) 설정
경로 = Server.MapPath(&FilesPath&) & /&Imgsrc&
Jpeg.Open 경로
'이미지 너비가 120 이하이고 높이가 90 이하인 경우 썸네일이 생성되지 않습니다.
Jpeg.OriginalWidth<=120 및 Jpeg.Height<=90인 경우
Jpeg.Width = Jpeg.OriginalWidth
Jpeg.Height = Jpeg.OriginalHeight
Smallimg=FilesPath&&GetImg(콘텐츠,파일 경로)
또 다른
'그림의 너비와 높이/2
Jpeg.Width = Jpeg.OriginalWidth / 2
Jpeg.Height = Jpeg.OriginalHeight / 2
Jpeg.저장 서버.MapPath(&FilesPath&) & /small_&Imgsrc&
Smallimg=&FilesPath&/small_&Imgsrc&
종료하면
종료하면
'결과 표시
response.Write(뉴스 첫 번째 사진은 :)
response.Write(<img src=&FilesPath&/&GetImg(Content,FilesPath)&>)
response.Write(<br>뉴스 첫 번째 사진의 썸네일은:)
응답.쓰기(<img src=&Smallimg&>)
response.Write(<br>새 뉴스 콘텐츠(사진은 현지임):<br>)
응답.쓰기(콘텐츠)
응답.끝()
종료하면
%>