CURL采集远程图片到本地时,图片漏采了怎么处理
Jun 23, 2016 pm 01:33 PM 远程图片保存到本地需要一定的时间,而采集一下子就会采集上百篇,这就导致很多图片还没来的及保存到本地,就开始采集下一条。
不设置采集间隔时间,用PHP能不能解决这个问题,只在图片保存到本地执行完成后再继续执行下一条
回复讨论(解决方案)
你是多线程的采集吗?
最好贴出相关代码
如果只是解决漏采问题,循环多get几次就好,有时是对方服务器不稳定
function curl_get($url) { $filename = time (); $curl = curl_init (); curl_setopt ( $curl, CURLOPT_URL, $url ); curl_setopt ( $curl, CURLOPT_RETURNTRANSFER, true ); $data = curl_exec ( $curl ); curl_close ( $curl ); $file_extension = image_type ( $url ); $filename .= '.' . $file_extension; $fp = fopen ( './zzz/' . $filename, "w" ); fwrite ( $fp, $data ); fclose ( $fp );}$content = file_get_contents ( 'img.txt' );$arr = explode ( "\r\n", $content );foreach ( $arr as $v ) { curl_get ( $v );}
img.txt保存的都是远程图片地址,如果在循环时sleep(2)可以全部正确保存到本地,不设置间隔时间,都会漏掉几张。有什么方法可以解决这个问题
你不用 curl_multi 的吗?单个 curl 无法充分利用资源
CURLOPT_FILE 参数可直接写入文件,而不需要人工干预
并不是一次性采集多张图片,然后发布到一篇文章。而是每篇文章中的远程图片都会保存到本地,所以用的是单线程的curl.
采集100篇带图片的文章到自己的程序,使图片本地化的过程中,就漏了一部分图片
你不用 curl_multi 的吗?单个 curl 无法充分利用资源
CURLOPT_FILE 参数可直接写入文件,而不需要人工干预
CURLOPT_FILE 速度确实快多了,但只是遗漏的文件少了,仍然避免不了遗漏
一篇文章只有一张图片吗?
漏掉的图片也可能是没有分析出来
一篇文章只有一张图片吗?
漏掉的图片也可能是没有分析出来
一篇文章只有一张图片吗?
漏掉的图片也可能是没有分析出来
我使用 fwrite($fp, file_get_contents($url)); 解决了问题。但是curl为什么就不行呢?难道他不等数据返回就继续往下了吗,如何设置curl才能正确全部获取
你的 curl_get 不可能被重入
只有前一次执行完之后才可能执行下一次
是否在循环中停顿一下根本就没有关系
那问题在哪里呢,用curl为什么会丢失文件,该如何设置
CURLOPT_TIMEOUT 设置cURL允许执行的最长秒数
CURLOPT_CONNECTTIMEOUT 在发起连接前等待的时间,如果设置为0,则无限等待。
这2个试下,应该能解决问题。如果不能,请检查代码其他部分,不一定是curl的问题

Artikel Panas

Alat panas Tag

Artikel Panas

Tag artikel panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

11 skrip pemendek URL terbaik PHP (percuma dan premium)

Bekerja dengan Data Sesi Flash di Laravel

Respons HTTP yang dipermudahkan dalam ujian Laravel

Curl dalam PHP: Cara Menggunakan Pelanjutan PHP Curl dalam API REST

Bina aplikasi React dengan hujung belakang Laravel: Bahagian 2, React

12 skrip sembang php terbaik di codecanyon
