下载网络图片到本地

本文介绍了一个使用PHP进行远程图片批量下载的脚本案例,并针对执行过程中的超时问题给出了具体的解决办法,包括调整PHP配置参数以提高执行效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<?php     
error_reporting(0);
date_default_timezone_set("Asia/shanghai");
header("Content-type:text/html;charset=utf-8");

$host = "localhost";
$port = "";
$user = "root";
$pwd  = "guanli";

$conn = @ mysql_connect($host.":".$port, $user, $pwd) or die("Database connection error");
if($dbconn=mysql_select_db("caiji", $conn)){

}else{
    returnError("1010","Could not connect to mysql");
}

@mysql_query("set names 'utf8'");

    // 变量说明:     
    // $url 是远程图片的完整URL地址,不能为空。    
    // $filename 是可选变量: 如果为空,本地文件名将基于时间和日期     
    // 自动生成.     
        
    function get_photo($url,$filename='',$savefile='images/')   
    {     
        $imgArr = array('gif','bmp','png','ico','jpg','jepg');  
      
        if(!$url) return false;  
        
        if(!$filename) {     
          $ext=end(explode('/',$url));     
          
          $filename= $ext;     
        }     
       
        $filename = $savefile.$filename;  
      
        ob_start();     
        readfile($url);     
        $img = ob_get_contents();     
        ob_end_clean();     
        $size = strlen($img);     
        
        $fp2=@fopen($filename, "a");     
        fwrite($fp2,$img);     
        fclose($fp2);     
        
        return $filename;     
     }     
      


$res = mysql_query("select * from caiji where id<100");

$saveArr = array();//空的保存数组
while($row = mysql_fetch_assoc($res)) {
   
    if($row['logo']){
        get_photo($row['logo']);
        echo $row['id'].":".$row['logo']."<br>";
    }

}
?>

批量下载图片会超时

设置php.ini

max_execution_time = 600 ;每个PHP页面运行的最大时间值(秒),默认30秒
max_input_time = 600 ;每个PHP页面接收数据所需的最大时间,默认60秒
memory_limit = 8m ;每个PHP页面所吃掉的最大内存,默认8M

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值