php获取远程页面问题

来源:百度知道 编辑:UC知道 时间:2024/05/04 11:48:41
我用PHP获取远程页面,fopen,file_get_contents,这些函数来获取,经常出现filed to open stream:http request failed!错误,同一个URL,一会可以获取,一会又不行了,一会又返回空,why?

有两种办法:

一、使用snoopy类.
snoopy是一个sf上的一个开源项目,用来模仿web浏览器的功能,它能完成获取网页内容和发送表单的任务。
下面是它的一些特征:
1、方便抓取网页的内容
2、方便抓取网页的文字(去掉HTML代码)
3、方便抓取网页的链接
4、支持代理主机
5、支持基本的用户/密码认证模式
6、支持自定义用户agent,referer,cookies和header内容
7、支持浏览器转向,并能控制转向深度
8、能把网页中的链接扩展成高质量的url(默认)
9、方便提交数据并且获取返回值
10、支持跟踪HTML框架(v0.92增加)
11、支持再转向的时候传递cookies

二、使用curl函数,需要安装curl扩展.

curl 是使用URL语法的传送文件工具,支持FTP、FTPS、HTTP HTPPS SCP SFTP TFTP TELNET DICT FILE和LDAP。curl 支持SSL证书、HTTP POST、HTTP PUT 、FTP 上传,kerberos、基于HTT格式的上传、代理、cookie、用户+口令证明、文件传送恢复、http代理通道和大量其他有用的技巧。

用file()这个函数也可以,你可以试试