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爱好者其它相关文章!
-
OKX Web3钱包使用教程:创建、充值、转账、币种管理及参与DeFi教学 时间:2025-04-30
-
Web3钱包密码忘记了怎么办?能找回吗?如何创建并使用Web3钱包? 时间:2025-04-30
-
不同链的钱包怎么跨链转账?两种不同链的钱包转账方法详解 时间:2025-04-30
-
Web3钱包怎么授权?Web3钱包授权了未知名项目怎么办? 时间:2025-04-30
-
Solana(SOL)十大最佳钱包盘点(2025最新) 时间:2025-04-30
-
币圈新人如何创建使用币安钱包?币安钱包图文教程 时间:2025-04-30
今日更新
-
如何在docker容器中成功启动redis并进入
阅读:33
-
介绍php操作redis大全
阅读:21
-
lzh是什么文件格式
阅读:41
-
物理内存是什么
阅读:28
-
php7讲解垃圾回收机制
阅读:29
-
c端b端是什么意思
阅读:34
-
php怎么删除最后一个逗号
阅读:21
-
php session无法使用怎么办
阅读:20
-
html如何设置文本框对齐
阅读:27
-
php怎么删除指定行
阅读:21