分享一个自用的 PHP-Curl 类 https://github.com/wenpeng/PHP-Curl/

2016-01-04 08:58:56 +08:00
 zencoding

关于

PHP-Curl 是一个轻量级的网络操作类,实现 GET 、 POST 、 UPLOAD 、 DOWNLOAD 常用操作,支持链式写法

需求

对低版本做了向下支持,但建议使用 PHP 5.3 +

示例

GET:
$this->curl->get(目标网址);
POST:
$this->curl->post(变量名, 变量值)->post(多维数组)->submit(目标网址);
DOWNLOAD:
$this->curl->download(文件地址)->save(保存路径);
UPLOAD:
$this->curl->post(多维数组)->upload($_FILE 字段, 本地路径, 文件类型, 原始名称)->submit(目标网址);
配置

参考:http://php.net/manual/en/function.curl-setopt.php
php
$this->curl->set('CURLOPT_选项', 值)->post(多维数组)->submit(目标网址);

自动重试
// 出错自动重试 3 次(默认不启用)
$this->curl->retry(3)->post(多维数组)->submit(目标网址);
4523 次点击
所在节点    PHP
19 条回复
BOYPT
2016-01-04 09:09:00 +08:00
一般 composer require php-curl-class/php-curl-class
不再折腾其他封装
fising
2016-01-04 09:24:54 +08:00
不应该是 $curl->get(目标网址); 吗,为何是 $this->curl->get(目标网址);
hahasong
2016-01-04 09:26:34 +08:00
简单的事情搞复杂了,原生的封装一个函数搞定
yangqi
2016-01-04 09:42:52 +08:00
新收发问,这个解决了什么问题? 有什么好处?为什么要封装啊
lmfx89
2016-01-04 09:43:24 +08:00
@hahasong 但每次去复制函数很麻烦吧,写成类库其他项目或者人想用之类引用就可以了。 谢谢 LZ 分享。
zencoding
2016-01-04 09:47:22 +08:00
@fising 实例化时 $curl = new Curl 也是 ok 的

@yangqi 结构很简单,看源码就知道了
Yien
2016-01-04 09:51:27 +08:00
谢谢
anyforever
2016-01-04 10:18:19 +08:00
干净整洁利落,已 star
micookie
2016-01-04 11:22:02 +08:00
不错,学习了
falcon05
2016-01-04 12:35:38 +08:00
我都是用 composer 安装的 curl/curl ,主要是 cookie 操作不太方便,这个我试试怎么样
mrgeneral
2016-01-04 17:33:22 +08:00
简单的就自己写了,小项目就用 curl-class ,复杂点的就可以上 guzzle 了
zencoding
2016-01-04 19:26:43 +08:00
@mrgeneral 这个就是在处理一个小项目时封装的简单轮子
wd0g
2016-01-14 13:47:54 +08:00
可以自动设置更新 cookie 吗?
如果可以的话就不错了
我之前写的 CURL 支持自动更新 cookie 哦~~哈哈哈哈哈哈
zencoding
2016-01-14 14:13:11 +08:00
@wd0g

当然可以实现,这里是一个小例子

```php

$curl = new Curl;
$cookie = '/tmp/test_cookie_file';
$option = array(
'CURLOPT_COOKIEJAR' => $cookie,
'CURLOPT_COOKIEFILE' => $cookie
);
$curl->set($option)->get('http://www.baidu.com');

```
wd0g
2016-01-14 18:04:26 +08:00
@zencoding markdown 语法不能用~~~
wd0g
2016-01-14 18:04:41 +08:00
```
print xxoo
```
ioven
2016-01-15 19:54:19 +08:00
和 requests 有什么不同吗
sswowo
2016-01-21 17:28:14 +08:00
楼主也喜欢塔叔
zencoding
2016-01-23 08:34:30 +08:00
@sswowo 嗯呢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/248091

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX