保存网络防盗图片到本地

先读取网络图片,然后保存到本地,再生成本地服务器地址供使用

相关代码:

/*START*保存远程图片到本地*2015-8-25*/
if (strpos($post[‘bodys’][‘content’], ‘http://’) !== false || strpos($post[‘bodys’][‘content’], ‘https://’) !== false) {
$description = $post[‘bodys’][‘content’];
preg_match_all (“/<img([^>]*)\s*src=(‘|\”)([^’\”]+)(‘|\”)/”, $description, $matches );

//去除数组中重复的值
$new_arr=array_unique($matches[3]);
foreach ($new_arr as $value) {
$img = $this->grabImage($value, ”);
if ($img) {
$description = str_replace($value, $img, $description);
}
}
$post[‘bodys’][‘content’] = $description;
}
/*END*保存远程图片到本地*2015-8-25*/

function grabImage($url, $filename = ”) {
if ($url == ”) {
return false;
}
if ($filename == ”) {
$ext = strrchr($url, ‘.’);
if($ext != ‘.gif’ && $ext != ‘.jpg’ && $ext != ‘.png’) {
return false;
}
//uniqid()基于当前时间微秒数
$uniqid = uniqid();
$filename = $_SERVER[‘DOCUMENT_ROOT’].’kut/public/images/articles/’.$uniqid.$ext;
$realpath = ‘http://’.$_SERVER[‘SERVER_NAME’].’/kut/public/images/articles/’.$uniqid.$ext;
}

ob_start();
readfile($url);
$img = ob_get_contents();
ob_end_clean();

$fp = @fopen($filename, “a”);
fwrite($fp, $img);
fclose($fp);

return $realpath;
}

郑重声明:

1 本资源来源于互联网,资源的版权归资源原作者所持有,受《中华人民共和国著作权法》等相关法律保护。

2 由于无法和原作者取得联系,所以上传的部分资源无法先通过原作者的同意就分享给大家了,如本资源侵犯了您(原作者)的权益,请联系我们(微信号 xiaohaimei1989),我们会立马删除您的资源,并向您表达诚挚的歉意!

3 本站是一个公益型网站,分享资源的目的在于传播知识,分享知识,收取一点点打赏的辛苦费是用于网站的日常运营开支,并非用于商业用途。

4 本站资源只提供学习和参考研究使用,使用过后请在第一时间内删除。本站不承担资源被单位或个人商用带来的法律责任。

发表评论