- 论坛徽章:
- 0
|
本帖最后由 hightman 于 2010-10-17 00:45 编辑
其实用PHP模拟抓取HTTP内容,非常简单,实现方式也非常多,但本代码仍具备以下特色:
1. 纯PHP代码实现,不依赖任何其它第三方库或扩展,兼容PHP4.1起的所有版本。
2. 能设置或读取所有的HTTP头
3. 包含全功能并且带有一定智能的COOKIE处理,同一实例多次请求中会智能发送必要的COOKIE,COOKIE数据与外部文件交换(导入、导出)。
4. 可以自动处理 HTTP 301,302的跳转
5. 最可贵的一点是,支持 Keep-Alive 的HTTP连接,特别适合一次运行需求多次请求同一主机的内容情况,如采集。
6. 通过内置的Download()方法可以续传下载文件。
7. 支持通过POST方式上传任意个文件文件,发送数组字段等。
8. 支持SSL。
其它应用参见代码内的注释,英文注释兼容PHPDOC风格,英文表达可能不一定准确和合乎语法,多多见谅。
希望对大家有用~~
- <?php
- /**
- * Full featured Http Client class in pure PHP (4.1+)
- *
- * API list:
- * Object $http = new Http_Client([bool $verbose = false]);
- * integer $http->getStatus();
- * string $http->getTitle();
- * string $http->getUrl();
- * void $http->setHeader(string $key[, string $value = null]);
- * mixed $http->getHeader([string $key = null]);
- * void $http->setCookie(string $key, string $value);
- * mixed $http->getCookie([string $key = null[, string $host = null]]);
- * bool $http->saveCookie(string $filepath);
- * bool $http->loadCookie(string $filepath);
- * void $http->addPostField(string $key, mixed $value);
- * void $http->addPostFile(string $key, string $filename[, string $content = null]);
- * string $http->Get(string $url[, bool $redirect = true]);
- * mixed $http->Head(string $url[, bool $redirect = true]);
- * string $http->Post(string $url[, bool redirect = true]);
- * bool $http->Download(string $url[, string $filepath = null[, bool overwrite = false]);
- *
- * @author hightman <hightman@twomice.net>
- * @link http://www.hightman.cn/
- * @copyright Copyright © 2008-2010 Twomice Studio
- * @version $Id: http_client.class.php,v 1.21 2010/10/16 02:46:24 hightman Exp $
- */
复制代码 源码排版实在太丑了,我把它删除了只保留API简易注释,其余的放入附件。 |
|