php实现下载图片的方法
时间:2021-03-11 来源:互联网 标签: php
今天PHP爱好者给大家带来php实现下载图片的方法:1、使用“file_get_contents”实现下载图片;2、通过使用CURL实现下载图片;3、通过使用fopen实现下载图片即可。有需要的朋友们快来看看吧。
本文操作环境:windows7系统、PHP7.1版,DELL G3电脑
PHP下载远程图片的几种方法总结
本文演示3个从远程URL下载图片,并保存到本地文件中的方法,包括file_get_contents,curl和fopen。
1、使用file_get_contents
function dlfile($file_url, $save_to)
{
$content = file_get_contents($file_url);
file_put_contents($save_to, $content);
}
2、使用CURL
function dlfile($file_url, $save_to)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_POST, 0);
curl_setopt($ch,CURLOPT_URL,$file_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$file_content = curl_exec($ch);
curl_close($ch);
$downloaded_file = fopen($save_to, 'w');
fwrite($downloaded_file, $file_content);
fclose($downloaded_file);
}
3、使用fopen
function dlfile($file_url, $save_to)
{
$in= fopen($file_url, "rb");
$out= fopen($save_to, "wb");
while ($chunk = fread($in,8192))
{
fwrite($out, $chunk, 8192);
}
fclose($in);
fclose($out);
}
下载与保存完整方法(输出日志那行可删除):
private function downloadImage($url)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
$file = curl_exec($ch);
curl_close($ch);
$this->saveAsImage($url, $file);
}
private function saveAsImage($url, $file)
{
$filename = pathinfo($url, PATHINFO_BASENAME);
$dirname = pathinfo(parse_url($url, PHP_URL_PATH), PATHINFO_DIRNAME);
$path = 'public' . $dirname . '/';
$fullpath = 'public' . $dirname . '/' . $filename;
// 如果目录不存在,则创建
if(!is_dir($path)) {
mkdir($path, 0777, true);
}
if(file_exists($fullpath)) {
//$this->output->writeln("输出路径" . $fullpath);
} else {
$resource = fopen($fullpath, 'a');
fwrite($resource, $file);
fclose($resource);
//$this->output->writeln("输出路径" . $fullpath);
}
}
以上就是php实现下载图片的方法的详细内容,更多请关注php爱好者其它相关文章!
-
剑星赤血丹心获得方法 2024-11-24
-
艾尔登法环单翼架式战灰获得方法 2024-11-24
-
艾尔登法环唤起灵火战灰获得方法 2024-11-24
-
祇:女神之道生类怜悯令成就解锁方法 2024-11-24
-
艾尔登法环神兽冻霜踏地战灰获得方法 2024-11-24
-
艾尔登法环悲恸惨叫战灰获得方法 2024-11-24