Heim  >  Artikel  >  Backend-Entwicklung  >  So greifen Sie auf entfernte Bilder in PHP zu und speichern sie lokal

So greifen Sie auf entfernte Bilder in PHP zu und speichern sie lokal

王林
王林Original
2019-12-02 10:48:103477Durchsuche

So greifen Sie auf entfernte Bilder in PHP zu und speichern sie lokal

Implementierungsidee:

Bestimmen Sie zunächst, ob der Bildpfad leer ist. Wenn nicht, fahren Sie fort, rufen Sie dann die Bildinformationsgröße, den Namen des Bildpfadsuffixes usw. ab Berechnen Sie, dass die Größe des Bildquellcodes jedes Mal 1 KB beträgt, bis alle Daten abgerufen sind.

Lernvideo-Empfehlung: PHP-Video-Tutorial

Beispieldemonstration:

/**
 * 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(&#39;file_name&#39;=>$fileName,&#39;save_path&#39;=>$saveDir.$fileName);
}
$url = &#39;https://mmbiz.qlogo.cn/mmbiz/
7WQtTI9h56hgvOH8J0Xp5v97cDNOxf94vq0NdNOhZmb2ZiaJLfwd2U8gNoEvTQXdWlRPOuibkkSebexmR2epE0pQ/0?wx_fmt=gif&#39;;
//$url = &#39;http://www.phpernote.com/images/logo.gif&#39;;
//$url = &#39;http://avatar.csdn.net/5/3/6/1_u014236259.jpg&#39;;
var_dump( crabImage($url) );

Weitere verwandte Artikel-Tutorial-Empfehlungen: PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonSo greifen Sie auf entfernte Bilder in PHP zu und speichern sie lokal. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn