php程序获取远程图片进行下载到本地方法的总结

PHP通过URL远程下载图片到本地 使用PHP通过URL远程下载图片到本地(服务器) 所需参数:公网能够访问到的图片(文件)地址。 阅读详情

1.获取远程文件大小及信息的函数

function getFileSize($url){ 
         $url = parse_url($url); 
         if($fp = @fsockopen($url[’host’],empty($url[’port’])?80:$url[’port’],$error)){ 
                 fputs($fp,"GET ".(empty($url[’path’])?’/’:$url[’path’])." HTTP/1.1\r\n"); 
                 fputs($fp,"Host:$url[host]\r\n\r\n"); 
                 while(!feof($fp)){ 
                         $tmp = fgets($fp); 
                         if(trim($tmp) == ’’){ 
                                 break; 
                         }else if(preg_match(’/Content-Length:(.*)/si’,$tmp,$arr)){ 
                                 return trim($arr[1]); 
                         } 
                 } 
                 return null; 
         }else{ 
                 return null; 
         } 
} 
echo getFileSize("http://www.dianpub.com/download/xml.rar")

2.图片

//记录程序开始的时间
$BeginTime=getmicrotime();

function GrabImage($url,$filename="") { 
if($url==""):return false;endif; 
if($filename=="") { 
$ext=strrchr($url,"."); 
if($ext!=".gif" && $ext!=".jpg"):return false;endif; 
$filename=date("dMYHis").$ext; 
} 
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; 
} 

$img=GrabImage("http://www.dianpub.com/images/_1978837_detector_ap100.jpg",""); 
if($img):echo '<pre><img src="'.$img.'"></pre>';else:echo "false";endif;

//记录程序运行结束的时间
$EndTime=getmicrotime();

//返回运行时间
exit($EndTime-$BeginTime);

3.全文下载图片

if(!empty($saveremoteimg)) 
{ 
$body = stripslashes($body); 
$img_array = array(); 
preg_match_all("/(src|SRC)=[\"|'| ]{0,}(http:\/\/(.*)\.(gif|jpg|jpeg|bmp|png))/isU",$body,$img_array); 
$img_array = array_unique($img_array[2]); 
set_time_limit(0); 
$imgUrl = $img_dir."/".strftime("%Y%m%d",time()); 
$imgPath = $base_dir.$imgUrl; 
$milliSecond = strftime("%H%M%S",time()); 
if(!is_dir($imgPath)) @mkdir($imgPath,0777); 
foreach($img_array as $key =>$value) 
{ 
$value = trim($value); 
$get_file = @file_get_contents($value); 
$rndFileName = $imgPath."/".$milliSecond.$key.".".substr($value,-3,3); 
$fileurl = $imgUrl."/".$milliSecond.$key.".".substr($value,-3,3); 
if($get_file) 
{ 
$fp = @fopen($rndFileName,"w"); 
@fwrite($fp,$get_file); 
@fclose($fp); 
} 
$body = ereg_replace($value,$fileurl,$body); 
} 
$body = addslashes($body); 
}

4.PHP远程文件下载类(支持断点续传)

1).功能:支持断点续传的下载,能计算传输率,能控制传输率

简易使用方法:

$object = new httpdownload();
$object->set_byfile($file);//服务器文件名,包括路径
$object->filename = $filename;//下载另存为的文件名
$object->download();

类文件:

<?
      class httpdownload { 
      var $data = null; 
      var $data_len = 0; 
      var $data_mod = 0; 
      var $data_type = 0; 
      var $data_section = 0; //section download 
      var $sentSize=0; 
      var $handler = array('auth' => null); 
      var $use_resume = true; 
      var $use_autoexit = false; 
      var $use_auth = false; 
      var $filename = null; 
      var $mime = null; 
      var $bufsize = 2048; 
      var $seek_start = 0; 
      var $seek_end = -1; 
      var $totalsizeref = 0; 
      var $bandwidth = 0; 
      var $speed = 0; 
      function initialize() { 
            global $HTTP_SERVER_VARS; 
            if ($this->use_auth) //use authentication { 
                  if (!$this->_auth()) //no authentication { 
                          header('WWW-Authenticate: Basic realm="Please enter your username and password"'); 
                          header('HTTP/1.0 401 Unauthorized'); 
                          header('status: 401 Unauthorized'); 
                          if ($this->use_autoexit) exit(); 
                          return false; 
                  } 
            } 
            if ($this->mime == null) $this->mime = "application/octet-stream"; //default mime 
            if (isset($_SERVER['HTTP_RANGE']) || isset($HTTP_SERVER_VARS['HTTP_RANGE'])) { 
                  if (isset($HTTP_SERVER_VARS['HTTP_RANGE'])) $seek_range = substr($HTTP_SERVER_VARS['HTTP_RANGE'] , strlen('bytes=')); 
                  else $seek_range = substr($_SERVER['HTTP_RANGE'] , strlen('bytes=')); 
            $range = explode('-',$seek_range); 
            if ($range[0] > 0) { 
                  $this->seek_start = intval($range[0]); 
            } 
            if ($range[1] > 0) $this->seek_end = intval($range[1]); 
            else $this->seek_end = -1; 
            if (!$this->use_resume) { 
                  $this->seek_start = 0; 
                  //header("HTTP/1.0 404 Bad Request"); 
                  //header("Status: 400 Bad Request"); 
                  //exit; 
                  //return false; 
            } else { 
                  $this->data_section = 1; 
            } 
      } else { 
            $this->seek_start = 0; 
            $this->seek_end = -1; 
      } 
      $this->sentSize=0; 
      return true;
}
function header($size,$seek_start=null,$seek_end=null) { 
      header('Content-type: ' . $this->mime); 
      header('Content-Disposition: attachment; filename="' . $this->filename . '"'); 
      header('Last-Modified: ' . date('D, d M Y H:i:s \G\M\T' , $this->data_mod)); 
      if ($this->data_section && $this->use_resume) { 
            header("HTTP/1.0 206 Partial Content"); 
            header("Status: 206 Partial Content"); 
            header('Accept-Ranges: bytes'); 
            header("Content-Range: bytes $seek_start-$seek_end/$size"); 
            header("Content-Length: " . ($seek_end - $seek_start + 1)); 
      } else { 
            header("Content-Length: $size"); 
      }
}
function download_ex($size) { 
      if (!$this->initialize()) return false; 
      ignore_user_abort(true); 
      //Use seek end here 
      if ($this->seek_start > ($size - 1)) $this->seek_start = 0; 
      if ($this->seek_end <= 0) $this->seek_end = $size - 1; 
      $this->header($size,$seek,$this->seek_end); 
      $this->data_mod = time(); 
      return true;
}
function download() { 
      if (!$this->initialize()) return false; 
      try { 
            error_log("begin download\n", 3,"/usr/local/www/apache22/LOGS/apache22_php.err"); 
            $seek = $this->seek_start; 
            $speed = $this->speed; 
            $bufsize = $this->bufsize; 
            $packet = 1; 
            //do some clean up 
            @ob_end_clean(); 
            $old_status = ignore_user_abort(true); 
            @set_time_limit(0); 
            $this->bandwidth = 0; 
            $size = $this->data_len; 
            if ($this->data_type == 0) //download from a file { 
                  $size = filesize($this->data); 
                  if ($seek > ($size - 1)) $seek = 0; 
                  if ($this->filename == null) $this->filename = basename($this->data); 
                  $res = fopen($this->data,'rb'); 
                  if ($seek) fseek($res , $seek); 
                  if ($this->seek_end < $seek) $this->seek_end = $size - 1; 
                  $this->header($size,$seek,$this->seek_end); //always use the last seek 
                  $size = $this->seek_end - $seek + 1; 
                  while (!(connection_aborted() || connection_status() == 1) && $size > 0) { 
                        if ($size < $bufsize) { 
                              echo fread($res , $size); 
                              $this->bandwidth += $size; 
                              $this->sentSize+=$size; 
                        } else { 
                        echo fread($res , $bufsize); 
                        $this->bandwidth += $bufsize; 
                        $this->sentSize+=$bufsize; 
                  } 
                  $size -= $bufsize; 
                  flush(); 
                  if ($speed > 0 && ($this->bandwidth > $speed*$packet*1024)) { 
                        sleep(1); 
                        $packet++; 
                  } 
            } 
            fclose($res); 
      } 
      elseif ($this->data_type == 1) //download from a string 
      { 
            if ($seek > ($size - 1)) $seek = 0; 
            if ($this->seek_end < $seek) $this->seek_end = $this->data_len - 1; 
            $this->data = substr($this->data , $seek , $this->seek_end - $seek + 1); 
            if ($this->filename == null) $this->filename = time(); 
            $size = strlen($this->data); 
            $this->header($this->data_len,$seek,$this->seek_end); 
            while (!connection_aborted() && $size > 0) { 
                  if ($size < $bufsize) { 
                        $this->bandwidth += $size; 
                        $this->sentSize+=$size; 
                  } else { 
                        $this->bandwidth += $bufsize; 
                        $this->sentSize+=$bufsize; 
                  } 
                  echo substr($this->data , 0 , $bufsize); 
                  $this->data = substr($this->data , $bufsize); 
                  $size -= $bufsize; 
                  flush(); 
                  if ($speed > 0 && ($this->bandwidth > $speed*$packet*1024)) { 
                        sleep(1); 
                        $packet++; 
                  } 
            } 
      } else if ($this->data_type == 2) { 
            //just send a redirect header 
            header('location: ' . $this->data); 
      } 
      if($this->totalsizeref==$this->sentSize )error_log("end download\n", 3,"/usr/local/www/apache22/LOGS/apache22_php.err"); 
      else error_log("download is canceled\n", 3,"/usr/local/www/apache22/LOGS/apache22_php.err"); 
      if ($this->use_autoexit) exit(); 
      //restore old status 
      ignore_user_abort($old_status); 
      set_time_limit(ini_get("max_execution_time")); 
}
catch(Exception $e) { 
      error_log("cancel download\n".$e, 3,"/usr/local/www/apache22/LOGS/apache22_php.err");
} 
      return true;
}
function set_byfile($dir) { 
      if (is_readable($dir) && is_file($dir)) { 
            $this->data_len = 0; 
            $this->data = $dir; 
            $this->data_type = 0; 
            $this->data_mod = filemtime($dir); 
            $this->totalsizeref = filesize($dir); 
            return true; 
      } else return false;
}
function set_bydata($data) { 
      if ($data == '') return false; 
            $this->data = $data; 
            $this->data_len = strlen($data); 
            $this->data_type = 1; 
            $this->data_mod = time(); 
            return true;
}
function set_byurl($data) { 
      $this->data = $data; 
      $this->data_len = 0; 
      $this->data_type = 2; 
      return true;
}
function set_lastmodtime($time) { 
      $time = intval($time); 
      if ($time <= 0) $time = time(); 
      $this->data_mod = $time;
}
function _auth() { 
      if (!isset($_SERVER['PHP_AUTH_USER'])) return false; 
      if (isset($this->handler['auth']) && function_exists($this->handler['auth'])) { 
            return $this->handler['auth']('auth' , $_SERVER['PHP_AUTH_USER'],$_SERVER['PHP_AUTH_PW']); 
      } else return true; //you must use a handler 
      }
}
?>

 

5. php 使用GD库下载远程图片

<?php   
$imgname = "
http://imgdujia.kuxun.cn/newpic/929/812929/4.jpg";   
$src_im = imagecreatefromjpeg($imgname);   
$srcW = ImageSX($src_im);                                                       //获得图像的宽   
$srcH = ImageSY($src_im);                                                       //获得图像的高   

$dst_im = ImageCreateTrueColor($srcW,$srcH);                    //创建新的图像对象   

imagecopy($dst_im, $src_im, 0, 0, 0, 0, $srcW, $srcH);   
imagejpeg($dst_im, "newpic.jpg");                                               //创建缩略图文件   

echo "<img src="newpic.jpg" mce_src="newpic.jpg"></img>";  

?>

 

<?php
header("Content-type: image/png");
$im = imagecreatefromjpeg("http://postimg.mop.com/200602/02/74/122374/200602022335325121.JPG");
$white = imagecolorallocate($im, 0xF9, 0xD7, 0xCD);
imagefill($im, 0, 0,$white);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,   "A Simple Text String", $text_color);
imagepng($im);
imagedestroy($im);
?>

注意这个要把PHP分配内存调大,应用时用大内存服务器

Python_构建同花顺问财智能选股API服务 本文详细介绍了如何使用Python构建同花顺问财智能选股API服务,涵盖从环境准备、核心API开发到高级功能扩展的全过程。通过Flask框架和pywencai库,开发者可以快速搭建稳定可靠的选股接口,实现自动化股票筛选与交易系统集成,提升量化投资效率。 阅读详情

相关推荐

新手必看:如何用R/qtl快速完成QTL定位分析(附实战代码)

本文为新手提供了使用R/qtl进行QTL定位分析的完整实战指南。内容涵盖从环境搭建、数据准备与清洗,到核心分析流程(包括遗传图谱计算、单QTL扫描、置换检验确定阈值)以及进阶结果可视化的全步骤。通过清晰的代码示例,帮助读者快速掌握这一数量遗传学关键分析技术,实现从数据到QTL峰值的完整分析闭环。

y7z8a的博客 498

php下载远程图片到本地(总结)

1. file_get_contents方法将图片下载到本地: <?php function geturlpic($file_url, $save_to){ $content = file_get_contents($file_url); file_put_contents($save_to, $content); } 2. CURL简单方法将图片下载到本地: ​​​​​​​<?php function geturlpic($file_url, $save_to){

1259

USB-Type-C PCB布局布线设计规范

USB Type-C连接器有24个引脚。图1和图2分别显示了USB Type-C插座和插头的插针。母头/母座公头/插头可以很明显看出,插口内的Pin功能相对于中心对称。公头插入母头,无论正反插,引脚功能都完美契合。而且电源VBUS/GND都拥有4个Pin,最大支持5A电流,在保证高速数据传输的同时也提高了电流承载能力。表 1 和表 2 分别汇总了在 USB Type-C 型插座和插头上所使用的信号列表。

weixin_63005522的博客 8277

php 图片保存到本地_PHP下载远程图片并保存到本地方法总结

1.获取远程文件大小及信息的函数function getFileSize($url){$url = parse_url($url);if($fp = @fsockopen($url['host'],empty($url['port'])?80:$url['port'],$error)){fputs($fp,"GET ".(empty($url['path'])?'/':$url['path'])....

weixin_39613839的博客 1142

copilot基于 DeepSeek-R1 思路构建 VLA 自动驾驶强化学习系统

下面给出一个完整示例代码,结合 DeepSeek‑R1 的技术方法,实现一个端到端的 VLA(视觉+语言行动)自动驾驶深度强化学习系统。.2f。

ywfwyht的博客 774

stm32cubeMX使用HAL库点亮LED流水灯

目录

weixin_46129506的博客 3797

php下载远程文件(图片)的三种方法

采集数据过程经常需要下载远程的图片保存到本地,本文向大家p介绍三种php下载远程图片的方法: 以下载http://www.54ux.com/wp-content/themes/d-simple/img/thumbnail.jpg图片为例: 1. 使用file_get_contents 和 file_put_contents 方法下载远程图片: php function download

飞翔的熊blabla 1648

GameFramework框架详解之 框架总览

一.前言 目前市场上有很多优秀个开源框架,比如ET,GameFramework,DBFramework,StrangeIOC,Loxodon-Framework,KSFramework,xluaFramework等等。其中要说规范的话,不得不说GameFramework还是不错的,当然很多新手看到后会觉的有点复杂,写一个小小的功能,不得不套用一堆东西,继承一堆接口,感觉不知所措,不能随心所欲的去撸代码。其实这个框架就是为了约束新手的行为的,让我们面向接口编程,遵循“开闭”的设计原则来写代码,方便后期的扩

TxNet 2万+

PHP拷贝远程图片到本地方法~

  function getImage($url, $save_dir = '', $filename = '', $type = 0) { if (trim($url) == '') { return array('file_name' =&gt; '', 'save_path' =&gt; '', 'error' =&gt; 1); ...

★昔梦无痕★ 1247

亚马逊爬虫实战:中国商家信息(电话)爬取

import os), # 保存图片的路径# 搜索关键词"keywords":["毛巾","衣服"],"product_number": 1000000000000000, # 分页获取数量# 和url一一对应 个数要一样"remarks": ["备注1"],# 以下内容非专业人员请勿更改,请找开发人员更改. 对应的是amazon_product_url_setting文件中名称.},

youbingchen的博客 1523

AutoSAR配置与实践(基础篇)2.5 RTE对数据一致性的管理

SWC内部不同的Runnable访问共同全局变量,Runnable类似C文件中的函数,这些函数如果被放在不同Task上运行, 可能出现出现同一时刻多个函数共同运行的情况。可以通过为受影响的任务分配相同的优先级,为受影响的任务分配相同的内部操作系统资源,或者将OS的任务配置为非抢占性来实现。数据一致性:当多个操作同时读写同一个数据,由于任务的抢占,出现了数据被篡改的情况,造成非预期的数据结果。SWC内部变量保护,限定局变量的作用域在变量的作用域在SWC的不同runnable间。

nihaoljq2010的博客 2628

php 远程图片大小,PHP下载远程图片并保存到本地方法总结

这篇文章主要介绍了PHP下载远程图片并保存到本地方法总结的相关资料,需要的朋友可以参考下1.获取远程文件大小及信息的函数function getFileSize($url){$url = parse_url($url);if($fp = @fsockopen($url['host'],empty($url['port'])?80:$url['port'],$error)){fputs($fp,"G...

weixin_39974223的博客 288

11.1华为OD机试真题 新系统 - 整理学生编号 (Java/Py/C/C++/Js/Go)

11.1华为OD机试真题 新系统 - 整理学生编号 (Java/Py/C/C++/Js/Go)

算法大师! 325

php抓取远程图片到本地,php获取远程图片并下载保存到本地的方法分析

本文实例讲述了php获取远程图片并下载保存到本地的方法。分享给大家供大家参考,具体如下:远程图片指的是远端服务器上的数据我们可以通过php的许多函数来读取下载了,这里整理了两个可以自动下载远程图片并下载保存到本地的例子。例1,可以自动识别图片类型然后进行对应的保存/**功能:php完美实现下载远程图片保存到本地*参数:文件url,保存文件目录,保存文件名称,使用的下载方式*当保存文件名称为空时则使...

weixin_32310195的博客 960

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

php 批量下载远程图片大小,php 下载远程图片 的几种方法

1.获取远程文件大小及信息的函数function getFileSize($url){$url = parse_url($url);if($fp = @fsockopen($url[’host’],empty($url[’port’])?80:$url[’port’],$error)){fputs($fp,"GET ".(empty($url[’path’])?’/’:$url[’path’])....

weixin_39951378的博客 292

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

php 下载图片并保存到本地,PHP下载远程图片并保存到本地方法总结_PHP

class httpdownload {var $data = null;var $data_len = 0;var $data_mod = 0;var $data_type = 0;var $data_section = 0; //section downloadvar $sentSize=0;var $handler = array('auth' => null);var $use_re...

weixin_39966465的博客 991

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

PHP从远程mysql下载文件_php获取远程图片并下载保存到本地的方法分析

本文实例讲述了php获取远程图片并下载保存到本地的方法。分享给大家供大家参考,具体如下:远程图片指的是远端服务器上的数据我们可以通过php的许多函数来读取下载了,这里整理了两个可以自动下载远程图片并下载保存到本地的例子。例1,可以自动识别图片类型然后进行对应的保存/**功能:php完美实现下载远程图片保存到本地*参数:文件url,保存文件目录,保存文件名称,使用的下载方式*当保存文件名称为空时则使...

weixin_39518840的博客 194

php远程图片,使用PHP采集远程图片

Aug23知识大全使用PHP采集远程图片以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!当我们需要采集网络上的某个网页内容时 如果目标网站上的图片做了防盗链的话 我们直接采集过来的图片在自己网站上是不可用的 那么我们使用程序将目标网站上的图片下载到我们网站服务器上 然后就可调用图片了   本文将使用PHP实现采集远程...

weixin_34324618的博客 605

php下載圖片,php遠程下載圖片

最近在做一個圖像處理的小玩意,需要最一些圖片的合成,比如給一個頭像加一個白色的邊框等,上網查了一下發現php已經有了這些功能,花了一下午搞定了gd庫開始寫程序,卻發現有一個地方必須要把網上的圖片先下載到本地,當時一時偷懶,就用了imagejpeg直接用url把圖片保存到了本地,后來發現這種方法奇慢無比,為了改進速度,所以我又開始找php下載遠程圖片的方法,終於找到了一個很快的辦法:/*** 異步將...

weixin_31847579的博客 109

使用PHP采集远程图片

当我们需要采集网络上的某个网页内容时,如果目标网站上的图片做了防盗链的话,我们直接采集过来的图片在自己网站上是不可用的。那么我们使用程序将目标网站上的图片下载到我们网站服务器上,然后就可调用图片了。 本文将使用PHP实现采集远程图片功能。基本流程: 1、获取目标网站图片地址。 2、读取图片内容。 3、创建要保存图片的路径并命名图片名称。 4、写入图...

aigaa264264的博客 452

php远程下载http图片到本地方法

做微信客服的时候要发送小卡片功能,要用到图片, 这边的图片要上传到腾讯返回medie_id ,不能用http直接给他一个地址,所以要上传非本地的图片要下载到本地之后再使用小程序提供的medel_id 比如我要下载 这张图片 https://images.cnblogs.com/cnblogs_com/liaosp/1058239/o_ban%E7%AD%89%E7%AD%89ner.jpg ...

廖圣平 2699

PHP实现下载远程图片保存到本地的方法

&lt;?php class Spider { public function downloadImage($url, $path='images/') { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);...

repoman的博客 2160

php header 强制下载,php通过修改header强制图片下载的方法

php通过修改header强制图片下载的方法本文实例讲述了php通过修改header强制图片下载的方法。分享给大家供大家参考。具体实现方法如下:function downloadFile($file){$file_name = $file;$mime = 'application/force-download';header('Pragma: public'); // requiredheader...

weixin_34824634的博客 508

php采集图片并显示,PHP远程采集图片详细教程

当我们需要采集网络上的某个网页内容时,如果目标网站上的图片做了防盗链的话,我们直接采集过来的图片在自己网站上是不可用的。那么我们使用程序将目标网站上的图片下载到我们网站服务器上,然后就可调用图片了。本文将使用PHP实现采集远程图片功能。基本流程:1、获取目标网站图片地址。2、读取图片内容。3、创建要保存图片的路径并命名图片名称。4、写入图片内容。5、完成。我们通过写几个函数来实现这一过程。函数ma...

weixin_42459078的博客 437

php中使用curl或fsockopen下载远程文件

以下载远程图片为例。 1、fsockopen方法   以下为引用的内容: curl方法。需要php中启用curl。 以下为引用的内容: $url) { $g=$save_to.basename($url); if(!is_file($g)) { $conn[$i]=curl_init($url); $fp[$i]=fopen ($g, “wb”); curl_setopt($conn[$i], CURLOPT_USERAGENT, “Mo

2909

php远程下载到本地,PHP 下载远程文件到本地的简单示例

搜索热词对PHP下载远程文件到本地存储的代码感兴趣的小伙伴,下面一起跟随编程之家 jb51.cc的小编两巴掌来看看吧!/*** PHP下载远程文件到本地存储的代码** @param* @arrange 512-笔记网: 512Pic.com**/function GrabImage($url,$filename="") {if($url=="") return false;if($filename...

weixin_36358383的博客 752
上一篇: TCP/IP详解学习笔记(1)-基本概念
下一篇: TCP/IP详解学习笔记(2)-数据链路层
simonjay2007
博客等级 码龄17年 104粉丝 112原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值