<?php
echo file_get_contents("http://www.163.com");
?>
echo file_get_contents("http://www.163.com");
?>
解决方案 »
- 为什么不能存入BLOD数据?
- 关于PHP的一点小问题
- 菜鸟想学PHP,可不知道该如何下手,请问各位老大,能否给小弟指条明路想走些弯路!
- 移动动态生成的table行,判断最上一行(在线跪求)
- PHP上万条数据查询
- 请问editorPlus或者emEditor怎么减少缩进
- 为什么下列代码一直是HTTP 503 Error!
- ecshop 里面的$GLOBALS['smarty']->_var里面的_var是在哪定义的为什么是_var而不是其他?
- PHP获取URL跳转后的链接
- 高手指点:什么时候关闭mysql数据库最合适?在程序结尾自动关闭不好么?
- 怎么用preg_replace
- php设计网站过程
不过一般的采集程序都是用的 file_get_contents 这个函数吗?
FOPEN应该怎么写呢?
'---------------利用xmlhttp和adodb.stream,酷!绝对原创!-----------------
'On Error Resume Next
'Set the content type to the specific type that you are sending.
'Response.ContentType = "IMAGE/JPEG"
'-------------------------------定义输出格式----------------------------- Path=request.querystring("p")
sPath = Path
if left(lcase(path),7) <> "http://" then
'-------------如果前面没有http就是本地文件,交给LocalFile处理------------
LocalFile(path)
else
'--------------------否则为远程文件,交给RemoteFile处理------------------
RemoteFile(Path)
end if
'Response.Write err.Des cription sub LocalFile(Path)
'-------------------如果为本地文件则简单的跳转到该页面-------------------
Response.Redirect Path
End SubSub RemoteFile(sPath)
'-------------------------处理远程文件函数------------------------------
FileName = GetFileName(sPath)
'-------------GetFileName为把地址转换为合格的文件名过程-------------
FileName = Server.MapPath("/UploadFile/Cache/" & FileName)
Set objFso = Server.CreateObject("s cripting.FileSystemObject")
'Response.Write fileName
if objFso.FileExists(FileName) Then
'--------------检查文件是否是已经访问过,如是,则简单跳转------------
Response.Redirect "/uploadfile/cache/" & GetFileName(path)
Else
'----------------否则的话就先用GetBody函数读取----------------------
'Response.Write Path
t = GetBody(Path)
'-----------------用二进制方法写到浏览器上--------------------------
Response.BinaryWrite t
Response.Flush
'-----------------输出缓冲------------------------------------------
SaveFile t,GetFileName(path)
'------------------将文件内容缓存到本地路径,以待下次访问-----------
End if
Set objFso = Nothing
End SubFunction GetBody(url)
'-----------------------本函数为远程获取内容的函数---------------------
'on error resume next
'Response.Write url
Set Retrieval = CreateObject("Microsoft.XMLHTTP")
'----------------------建立XMLHTTP对象-----------------------------
With Retrieval
.Open "Get", url, False, "", ""
'------------------用Get,异步的方法发送-----------------------
.Send
'GetBody = .ResponseText
GetBody = .ResponseBody
'------------------函数返回获取的内容--------------------------
End With
Set Retrieval = Nothing
'response.Write err.Des cription
End FunctionFunction GetFileName(str)
'-------------------------本函数为合格化的文件名函数-------------------
str = Replace(lcase(str),"http://","")
str = Replace(lcase(str),"//","/")
str = Replace(str,"/","")
str = replace(str,vbcrlf,"")
GetFileName = str
End Functionsub SaveFile(str,fName)
'-------------------------本函数为将流内容存盘的函数-------------------
'on error resume next
Set objStream = Server.CreateObject("ADODB.Stream")
'--------------建立ADODB.Stream对象,必须要ADO 2.5以上版本---------
objStream.Type = adTypeBinary
'-------------以二进制模式打开-------------------------------------
objStream.Open
objstream.write str
'--------------------将字符串内容写入缓冲--------------------------
'response.Write fname
objstream.SaveToFile "c:\inetpub\myweb\uploadfile\cache\" & fName,adSaveCreateOverWrite
'--------------------将缓冲的内容写入文件--------------------------
'response.BinaryWrite objstream.Read
objstream.Close()
set objstream = nothing
'-----------------------关闭对象,释放资源-------------------------
'response.Write err.Des cription
End sub
%>
但是我找的是PHP的代码
类似DEDECMS或者其他的文章系统中的采集模块中的那种因为我的DEDECMS在该服务器上用不了,所以想找到原因,谢谢
我是想测试一下DEDE为什么不能采集
无非是读取内容,正则,原理都是一样的。
php.net/fopen
效果是差不多的这一点我明白
主要是 服务器上用 file_get_contents 可以正常读取远程网址,但是DEDECMS的采集就是用不了,所以我想用 FOPEN 检测一下是哪里出了问题哪位用FOPEN给我写下获取远程网址的小程序,谢了