V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  abccccabc  ›  全部回复第 3 页 / 共 31 页
回复总数  619
1  2  3  4  5  6  7  8  9  10 ... 31  
41 天前
回复了 Canglin 创建的主题 Python 想问问我这个 ffmpeg 方法该怎么办
@liyouran 这个-y 参数不好用,在我 php 这里会报错。
现在的防火墙也把我给搞懵了,以前一直用 iptables ,现在换 debian 了,听说 ufw 比较简单好用,然后稀里糊涂的装上了,aaPanel 界面上说我没安装防火墙,但是在 aaPanel 另外一个界面又可以操作。

现在不管它了,反正我的网站也没人访问。
41 天前
回复了 AngryOrange 创建的主题 程序员 15k star 开源项目寻找学生合作者
看到 15K ,我赶紧点进来看看,仔细看了一下,哦,15K star 。
多谢 25L ,我已经在看 reactphp ,毕竟一个 composer 就可以,不需要太多配置。
@cxdLand ```Yii-queue 开箱就用```

这个是队列吧?还得有一个定时任务去消耗队列?
会不会是套了一层 cf 的网站呢?
有个问题我觉得挺奇怪的,为啥有些高手盯着变量 i 呢?
我原有代码(doReplace 函数里的代码写在 for 循环内)和 39L 的基本一模一样。他只是提取$.post 到 doReplace 函数里,就成功了。神奇之术。难道是因为变量的作用域问题吗?
我的天呐,高手们这么热情。

写了两遍实现。太浪费时间了。

@ming159 39L 这个太简单了,早点看到这个就好了。一直在想着因为异步导致的问题,结果把大家都带偏了。

已经实现了,谢谢各位
@cheese 谢谢。

代码正在改造中
@qrobot 你说对了。估计你早有解决方案了
@webszy 1 、Promise.all 获取所以返回结果再修改,2 、使用 async/await 转为同步处理

我去看看 Promise.all ,同步会卡浏览器,现在就是用的这种方法,图片少了还好,图片一多。这个浏览器什么也干不了。
@nitmali 使用场景是这样的。

oldcontent="我是文章内容,里面有多个远程图片,如<img src='https://www.baidu.com/s/abc.jpg'> <img src='https://www.csdn.com/s/123.jpg'> <img src='https://www.jd.com/s/mn.jpg'>,甚至有些文章内容的图片会更多,现在的需求就是将这些文章内容中的图片进行本地化。替换掉文章内容远程图片,最后入库”。


var allimg = ['https://www.baidu.com/s/abc.jpg', 'https://www.csdn.com/s/123.jpg', 'https://www.jd.com/s/mn.jpg'];


$.post 是异步,如何在循环的异步中替换掉 oldcontent 呢?

@zzxqd var oldcontent = allimg.map(item => {return item.url}) ,这一句什么意思呢?


各位,我 JS 水平不高,就会用一个 jquery 。
@zzzyyysss 我试过了,多个异步去修改 oldcontent 替换旧图片地址,只有 for 循环最后 i 变量替换操作生效。 现在我明白,是要对 oldcontent 加锁,这应该就是竞争。太深澳了,又搞不定。唉。


看来现在得请教 JS 高手了。
@putyy 用不起云存储,个人小论坛,用来记录我的学习而已。

@cybort 确实是并发超过一定数量后,部分主机会限制。直接返回类似 403 这种
@zzzyyysss

你说的是这样的吗?
```
var allimg = 获取到的图片数组;
var oldcontent = 原内容;
for(var i=0; i<allimg.length; i++){
$.post('url', 参数, function(ret) {
if(ret['code'] == 200) {
oldcontent = oldcontent.replace(ret['oldimgurl'], ret['newimgurl']);
}else{
console.log(错误信息);
}
}, 'json');
}
```

这样有一个很大的问题:多个异步去修改同一全局变量,必须要锁定全局变量 oldcontent ,然后用队列的形式去替换 oldcontent 内容,不然最后只会有一个修改 oldcontent 生效。

这样更麻烦,搞不定。

-------------------
php 用了并发,现在问题也不小,
```
<?xml version="1.0" encoding="UTF-8"?>
<Error>
<Code>AccessDenied</Code>
<Message>You are denied by bucket referer policy.</Message>
<RequestId>65F44FE6D4BE2035341DF46B</RequestId>
<HostId>40114.oss-cn-beijing.aliyuncs.com</HostId>
<BucketName>blog-picture-240114</BucketName>
<EC>0003-00000503</EC>
<RecommendDoc>https://api.aliyun.com/troubleshoot?q=0003-00000503</RecommendDoc>
</Error>
```
这节奏似乎只能放弃 PHP 并发了。
@erquiasz0825 guzzle 简单好用,默认也是用 curl_multi_exec ,不是多线程也不是多进程,而是用非阻塞 I/O 的原理。

楼上有人建议过,我看了下,他的版本让人真的好纠结:用 v6 版本 php 版本为 >=5.5 and <8.0 ,用 v7 版本, php >= 7.2.5 。

现在在看 Yurunsoft/YurunHttp
沃得天呐,你们到底知道多少这种 PHP 工具包呀?

看来是我见识少呀,向各路并发/异步 PHP 高手学习学习。展示一下你写的 并发/async php 代码???让我开开眼界呗。
@k9982874 没玩过爬虫,我是手工复制文章到论坛。有时候因为文章的图片太多,导致图片本地化失败。到目前为止,还没有自动采集过别人的文章入数据库的事情。

白嫖???工具包我只能白嫖呀,像这样的工具包 Yurunsoft/YurunHttp 我写不出来的,只能用别人写好的工具包。
@a282810 要求 php7.1 以上的 https://github.com/Yurunsoft/YurunHttp

这个工具包可以研究研究,它的低版本可以考虑。谢谢
@k9982874 不是做爬虫,是复制 web 文章到我的论坛,同时要将图片进行本地化。而且还要替换掉内容中的外部图片地址。

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


我是复制一些网络上优秀的文章到 dz 论坛,同时需要替换掉文章内容对应的 bbcode 图片代码。异步真不知道怎么操作,并发的话,我知道后续会有一个结果,对这个结果 foreach 就可以得到下载后图片。方便处理后续替换入库等操作。
1  2  3  4  5  6  7  8  9  10 ... 31  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1152 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 24ms · UTC 17:54 · PVG 01:54 · LAX 10:54 · JFK 13:54
Developed with CodeLauncher
♥ Do have faith in what you're doing.