各路 PHP 高手,谁用过 PHP 的并发?是指 composer 里的工具包

281 天前
 abccccabc
各路 PHP 高手,谁用过 PHP 的并发?主要是 composer 里的工具包,并不是指 swoole 。

目的:用于获取 web 图片
使用场景:复制一篇经典的文章到我自己的论坛,可能含有图片 20 张左右,如果使用 curl 一张一张的取,网络不好的时候可能会超时,如果图片更多,绝对超时;如果用并发 curl 取图片,应该会很快。

希望此 composer 包能兼容的 php 版本多些。
2801 次点击
所在节点    PHP
37 条回复
shiny
281 天前
不试试 curl_multi_exec ?
a282810
281 天前
simonlu9
281 天前
pthread 试下
huyiwei
281 天前
多开几个进程呗
a282810
281 天前
wonderfulcxm
281 天前
guzzle 就可以
abccccabc
281 天前
```
@a282810
以前爬东西用过 https://github.com/ares333/php-curl
```
简单看了一下使用示例,并没有看到并发的相关操作。而且此包很久都没有更新了。处于无维护状态。
panlatent
281 天前
用 curl 拓展或者 Guzzle 库,推荐后者, 尽量不要尝试多进场/线程方案,坑太多。
k9982874
281 天前
php 现在能并发了?牛!另外爬东西不试试 py ?
vacker
281 天前
我选择使用队列
hefish
281 天前
这思路不对啊,这不是应该往异步方面去考虑吗?怎么硬往并发上去凑?
a282810
281 天前
@abccccabc #7 其实是基于 curl_multi_exec , 能实现需要的功能就可以了,Curl::add()添加任务到任务池,Curl::start()开始执行任务并阻塞
abccccabc
280 天前
@k9982874 不是做爬虫,是复制 web 文章到我的论坛,同时要将图片进行本地化。而且还要替换掉内容中的外部图片地址。

@a282810 https://github.com/ares333/php-curl 这个项目里感觉更像异步,并发的话,肯定还要处理后续事情。他的项目示例里没有体现出来。


我是复制一些网络上优秀的文章到 dz 论坛,同时需要替换掉文章内容对应的 bbcode 图片代码。异步真不知道怎么操作,并发的话,我知道后续会有一个结果,对这个结果 foreach 就可以得到下载后图片。方便处理后续替换入库等操作。
abccccabc
280 天前
@a282810 要求 php7.1 以上的 https://github.com/Yurunsoft/YurunHttp

这个工具包可以研究研究,它的低版本可以考虑。谢谢
k9982874
280 天前
@abccccabc 你说的不就是爬虫,白嫖就白嫖大方承认不丢人,强行解释就又当又立了
abccccabc
280 天前
@k9982874 没玩过爬虫,我是手工复制文章到论坛。有时候因为文章的图片太多,导致图片本地化失败。到目前为止,还没有自动采集过别人的文章入数据库的事情。

白嫖???工具包我只能白嫖呀,像这样的工具包 Yurunsoft/YurunHttp 我写不出来的,只能用别人写好的工具包。
weiqk
280 天前
帖子保存起来然后异步去下载图片,什么年代了还同步取图
并发取图 curl_multi_exec 推荐,pthread 不推荐坑多
wpjscc
280 天前
异步可以试试 reactphp http

https://github.com/reactphp/http
abccccabc
280 天前
沃得天呐,你们到底知道多少这种 PHP 工具包呀?

看来是我见识少呀,向各路并发/异步 PHP 高手学习学习。展示一下你写的 并发/async php 代码???让我开开眼界呗。
erquiasz0825
280 天前
guzzle 简单好用,默认也是用 curl_multi_exec ,不是多线程也不是多进程,而是用非阻塞 I/O 的原理。

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

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

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

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

© 2021 V2EX