爬取服务器图片

22 篇文章 0 订阅


自己尝试的

header("content-type:text/html;charset=utf-8");
$search = array(" ", " ", "\n", "\r", "\t");
$replace = array("", "", "", "", "");
$merchant_num = str_replace($search, $replace, $_REQUEST['merchant_num']);  //过滤换行空格等
if (IS_POST) {
    $merchant_num_array = array_filter(explode(',', $merchant_num));
    if (count($merchant_num_array) == 0) {
        echo json_encode(['code' => 1, 'msg' =>"请填写门店编号"]);
        exit;
    }
    if (count($merchant_num_array) > 100) {
        echo json_encode(['code' => 1, 'msg' => "最多支持100家转换"]);
        exit;
    }
    foreach ($merchant_num_array as $key => $val) {
        if (strlen($val) != 15) {
            echo json_encode(['code' => 1, 'msg' => "门店编号" . $val . "不正确"]);
            exit;
        }
    }
    $where['merchant_num'] =array('in',$merchant_num_array);
    $merchant_bank22 = M('merchant_bank22', 'pay_', 'DB_CONFIG3')->field('store_img,merchant_num,merchant_name')->where($where)->select();
    foreach ($merchant_bank22 as $key22=>$val22){
        if($val22['store_img']){
            $url =  "https://posppay.020leader.com".$val22['store_img'];
            $filename = "images22/".$merchant_bank22['merchant_num'].'/'.$val22['merchant_name'].".jpg";
            $filename=iconv("utf-8","gbk",$filename);
            if ($url == "")
                return false;
            if ($filename == "") {
                $ext = strrchr($url, ".");
                if ($ext != ".gif" && $ext != ".jpg" && $ext != ".png" && $ext != "jpeg")
                    return false;
                $filename = date("YmdHis") . $ext;
            }
            ob_start();
            //make file that output from url goes to buffer
            readfile($url);
            //file_get_contents($url);  这个方法不行的!!!只能用readfile
            $img = ob_get_contents();
            ob_end_clean();
            $fp = @fopen($filename, "a"); //append
            fwrite($fp, $img);
            fclose($fp);
        }
    }



网上找的

<?php 
/*完成网页内容捕获功能*/ 
function get_img_url($site_name){ 
 $site_fd = fopen($site_name, "r"); 
 $site_content = ""; 
 while (!feof($site_fd)) { 
  $site_content .= fread($site_fd, 1024); 
 } 
 /*利用正则表达式得到图片链接*/ 
 $reg_tag = '/<img.*?\"([^\"]*(jpg|bmp|jpeg|gif)).*?>/'; 
 $ret = preg_match_all($reg_tag, $site_content, $match_result); 
 fclose($site_fd); 
 return $match_result[1]; 

 
/* 对图片链接进行修正 */ 
function revise_site($site_list, $base_site){ 
 foreach($site_list as $site_item) { 
  if (preg_match('/^http/', $site_item)) { 
   $return_list[] = $site_item; 
  }else{ 
   $return_list[] = $base_site."/".$site_item; 
 } 
 } 
 return $return_list; 

 
/*得到图片名字,并将其保存在指定位置*/ 
function get_pic_file($pic_url_array, $pos){ 
 $reg_tag = '/.*\/(.*?)$/'; 
 $count = 0; 
 foreach($pic_url_array as $pic_item){ 
  $ret = preg_match_all($reg_tag,$pic_item,$t_pic_name); 
  $pic_name = $pos.$t_pic_name[1][0]; 
  $pic_url = $pic_item; 
 print("Downloading ".$pic_url." "); 
  $img_read_fd = fopen($pic_url,"r"); 
  $img_write_fd = fopen($pic_name,"w"); 
  $img_content = ""; 
  while(!feof($img_read_fd)){ 
   $img_content .= fread($img_read_fd,1024); 
   
  } 
  fwrite($img_write_fd,$img_content); 
  fclose($img_read_fd); 
  fclose($img_write_fd); 
  print("[OK] "); 
 } 
 return 0; 

 
function main(){ 
/* 待抓取图片的网页地址 */ 
 $site_name = "http://www.jb51.net/sheying/391528.html"; 
 $img_url = get_img_url($site_name); 
 $img_url_revised = revise_site($img_url, $site_name); 
 $img_url_unique = array_unique($img_url_revised); //unique array 
 get_pic_file($img_url_unique,"./"); 

 
main(); 
?> 







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值