> 백엔드 개발 > PHP 튜토리얼 > 批量下载的图片都是0字节,该怎么解决

批量下载的图片都是0字节,该怎么解决

WBOY
풀어 주다: 2016-06-13 13:30:31
원래의
1227명이 탐색했습니다.

批量下载的图片都是0字节

PHP code
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--><?php $conn = mysql_connect("127.0.0.1","root","123456") or die("无法连接数据库");
@mysql_query("SET character_set_connection=utf8, character_set_results=utf8, character_set_client=binary",$conn);
mysql_select_db("s517",$conn) or die("无法连接数据库");
global $db;

function getImage($url, $filename="") {
if(!$url) return false;

if(!$filename) {
  $ext=strrchr(strtolower($url),".") ;
  if($ext!=".gif" && $ext!=".jpg" && $ext!=".png") return false;
  $str=explode('/',$url) ;
  $filename=$str[count($str)-1] ;
}

ob_start();
readfile($url);
$img = ob_get_contents();
ob_end_clean();
$fp2=@fopen($filename, "a") ;
fclose($fp2) ;
return $filename;
}

//批量下载

    $result = mysql_query("SELECT itemid, thumb FROM table LIMIT 0 , 300");
    while($row = mysql_fetch_array($result)) {
    getImage($row["thumb"],"");
    echo $row["itemid"]."输出成功";
     }
?>
로그인 후 복사

table里面的thumb是采集的远程图片路径
我用这个函数下载下来的图片都是0字节。

------解决方案--------------------
while太快了,sleep一下
------解决方案--------------------
先去一两张看看有什么,而且你的代码里没有输出 getImage()的结果啊.
PHP code

    $result = mysql_query("SELECT itemid, thumb FROM table LIMIT 0 , 1");
    while($row = mysql_fetch_array($result)) {
    echo getImage($row["thumb"],"")."<br>";
    echo $row["itemid"]."输出成功<br>";
     }
<br><font color="#e78608">------解决方案--------------------</font><br>
直接file_get_content file_put_content <div class="clear">
                 
              
              
        
            </div>
로그인 후 복사
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿