Heim > Artikel > Backend-Entwicklung > So greifen Sie auf entfernte Bilder zu und speichern sie lokal mit PHP
In diesem Artikel erfahren Sie hauptsächlich, wie PHP Remote-Bilder erfassen und lokal speichern kann. Vor kurzem muss ich bei der Arbeit eine Benutzermaterialfunktion entwickeln, die verschiedene Bildmaterialien lokal im Internet speichern muss. Deshalb habe ich im Internet einige relevante Informationen gefunden und die wichtigsten Logikcodes entsprechend meinen eigenen Entwicklungsanforderungen sortiert.
/** * PHP将网页上的图片攫取到本地存储 * @param $imgUrl 图片url地址 * @param string $saveDir 本地存储路径 默认存储在当前路径 * @param null $fileName 图片存储到本地的文件名 * @return mix */ function crabImage($imgUrl, $saveDir='./', $fileName=null){ if(empty($imgUrl)){ return false; } //获取图片信息大小 $imgSize = getImageSize($imgUrl); if(!in_array($imgSize['mime'],array('image/jpg', 'image/gif', 'image/png', 'image/jpeg'),true)){ return false; } //获取后缀名 $_mime = explode('/', $imgSize['mime']); $_ext = '.'.end($_mime); if(empty($fileName)){ //生成唯一的文件名 $fileName = uniqid(time(),true).$_ext; } //开始攫取 ob_start(); readfile($imgUrl); $imgInfo = ob_get_contents(); ob_end_clean(); if(!file_exists($saveDir)){ mkdir($saveDir,0777,true); } $fp = fopen($saveDir.$fileName, 'a'); $imgLen = strlen($imgInfo); //计算图片源码大小 $_inx = 1024; //每次写入1k $_time = ceil($imgLen/$_inx); for($i=0; $i<$_time; $i++){ fwrite($fp,substr($imgInfo, $i*$_inx, $_inx)); } fclose($fp); return array('file_name'=>$fileName,'save_path'=>$saveDir.$fileName); } $url = 'https://mmbiz.qlogo.cn/mmbiz/7WQtTI9h56hgvOH8J0Xp5v97cDNOxf94vq0NdNOhZmb2ZiaJLfwd2U8gNoEvTQXdWlRPOuibkkSebexmR2epE0pQ/0?wx_fmt=gif'; //$url = 'http://www.phpernote.com/images/logo.gif'; //$url = 'http://avatar.csdn.net/5/3/6/1_u014236259.jpg'; var_dump( crabImage($url) );
Der obige Code wurde in meiner Arbeit getestet und kann grundsätzlich verwendet werden. Wenn Sie Fragen haben, korrigieren Sie mich bitte!
Verwandte Empfehlungen:
PHP-Tutorial zum Erfassen von Remote-Bildern
PHP-Funktion zum Erfassen von Remote-Bildern auf lokal
So verwenden Sie PHP, um Remote-Bilder zu erfassen und als
zu speichernDas obige ist der detaillierte Inhalt vonSo greifen Sie auf entfernte Bilder zu und speichern sie lokal mit PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!