PHP下载远程图片并保存到本地

2023-11-01

方式1:
/**
* 远程下载图片
* @param $url
* @param string $save_dir
* @param string $filename
* @param int t y p e ∗ @ r e t u r n a r r a y ∗ / p u b l i c s t a t i c f u n c t i o n g e t I m a g e ( type * @return array */ public static function getImage( type@returnarray/publicstaticfunctiongetImage(url, $save_dir = ‘’, $filename = ‘’, KaTeX parse error: Expected '}', got 'EOF' at end of input: … if (trim(url) == ‘’) {
return array(‘code’ => 1, ‘error’ => ‘文件url不合法’);
}
if (trim($save_dir) == ‘’) {
KaTeX parse error: Expected 'EOF', got '}' at position 26: … './'; }̲ if (tr…filename) == ‘’) {//保存文件名
e x t = s t r r c h r ( ext = strrchr( ext=strrchr(url, ‘.’);
if ($ext != ‘.gif’ && $ext != ‘.jpg’ && $ext != ‘.png’) {
return array(‘code’ => 3, ‘error’ => ‘文件类型不合法’);
}
f i l e n a m e = s u b s t r ( filename = substr( filename=substr(url, strripos($url, “/”) + 1);
} else{
e x t = s t r r c h r ( ext = strrchr( ext=strrchr(url, ‘.’);
if ($ext != ‘.gif’ && $ext != ‘.jpg’ && $ext != ‘.png’) {
return array(‘code’ => 3, ‘error’ => ‘文件类型不合法’);
}
f i l e n a m e = ′ s t a t i c / h o m e / i m g s / ′ . filename = 'static/home/imgs/'. filename=static/home/imgs/.filename.’.png’;
}

    if (0 !== strrpos($save_dir, '/')) {
        $save_dir .= '/';
    }
    //创建保存目录
    if (!file_exists($save_dir) && !mkdir($save_dir, 0777, true)) {
        return array('code' => 5, 'error' => '创建文件失败');
    }
    //获取远程文件所采用的方法
    if ($type) {
        $ch = curl_init();
        $timeout = 5;
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
        $img = curl_exec($ch);
        curl_close($ch);
    } else {
        ob_start();
        readfile($url);
        $img = ob_get_contents();
        ob_end_clean();
    }
    //$size=strlen($img);
    //文件大小
    $fp2 = @fopen($save_dir . $filename, 'a');

    dump($img);die;
    fwrite($fp2, $img);
    fclose($fp2);
    unset($img, $url);
    return $filename;
}

方式2:
/**
* 获取远程图片
* @param $imgUrl 图片地址
* @param g o o d s i d 保 存 的 文 件 名 ∗ @ r e t u r n s t r i n g ∗ / p u b l i c s t a t i c f u n c t i o n G D k ( goodsid 保存的文件名 * @return string */ public static function GDk( goodsid@returnstring/publicstaticfunctionGDk(imgUrl,$goodsid)
{
f o r m a t = s u b s t r ( format = substr( format=substr(imgUrl,-4);

    if($format === '.jpg' || $format === 'jpeg')
    {
        $src_im = imagecreatefromjpeg ($imgUrl);
    }elseif($format === '.png'){
        $src_im = imagecreatefrompng ($imgUrl);
    }
    $srcW = ImageSX($src_im); //获得图像的宽
    $srcH = ImageSY($src_im); //获得图像的高
    $dst_im = ImageCreateTrueColor($srcW,$srcH); //创建新的图像对象

    if($format === 'jpeg')
    {
        $format = '.jpeg';
    }

    $path = "static/home/poster/product_img/".$goodsid.$format;//保存地址
    imagecopy($dst_im, $src_im, 0, 0, 0, 0, $srcW, $srcH);
    imagejpeg($dst_im, $path); //创建缩略图文件

    $images = Image::open($path);
    // 按照原图的比例生成一个最大为150*150的缩略图并保存为thumb.png
    $images->thumb(680,680)->save($path);

    return $path;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP下载远程图片并保存到本地 的相关文章

  • 检查 $_POST 数据

    我正在对表单进行一些垃圾邮件检查 下面的代码在我的本地主机上正常工作 如果为 true 则重定向到 google com 但是 当它在生产服务器上时却不起作用 执行脚本的其余部分并且不重定向到 Google com if POST SERV
  • php curl 使用 GET 发送变量 奇怪的结果

    我正在尝试调用远程站点上页面中的网址 决定使用curl 在远程站点上 url 变量显示为 REQUEST Array var1 gt val1 amp var2 gt val2 amp var3 gt val3 被调用的url是 http
  • setcookie with expire=0 浏览器关闭后不会过期

    我使用setcookie来制作一个过期 0的cookie 从 PHP 文档来看 link http php net manual en function setcookie php cookie 过期的时间 这是一个 Unix 时间戳 所以
  • 将 PHP 短开放标签替换为

    我有大量多年来编写的 php 文件 我需要将所有短开放标签正确替换为正确的显式开放标签 change
  • jQuery ajax 调用包含重音字符的 url 将错误的 Uri 从 IE 发送到服务器

    我在使用 IE 发送包含重音字符的 url 时遇到问题 这是一个简单的函数 function runjQueryTest var url test Beyonc get url function 在服务器 PHP 上我记录了请求uri的值
  • PHP MongoDb 驱动程序:如何设置执行代码的超时

    我有以下代码 它在 MongoDb 端执行一段代码 mongoCode new MongoCode Some JS code db gt execute mongoCode array socketTimeoutMS gt 1000000
  • CakePHP 视图包括其他视图

    我有一个 CakePHP 应用程序 在某些时候会显示带有产品媒体 图片或视频 的视图 我想知道是否有某种方式可以包含另一个威胁视频或威胁图片的视图 具体取决于标志 我想将这些 小视图 用于其他几个目的 所以它应该 像 蛋糕组件一样 以便重用
  • 在哪里可以学习网络编程从入门到精通? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我尝试做教程 但它是无组织且无结构的 我在哪里可以学习 PHP 从初学者到大师 我正在寻找类似的网站w
  • 覆盖 FOS 用户包中的“更改密码”模板

    我做了一些研究 遗憾的是找不到任何帮助 因此 我将 FOSUserBundle ChangePasswordAction 渲染到我的模板中 但它显示供应商提供的默认模板 我的渲染控制器的模板 block body h2 Einstellun
  • PHP 中标头的使用

    非常简单的问题 这两个 PHP 版本 5 标头调用中哪一个是 最好的 header Not Modified true 304 header HTTP 1 1 304 Not Modified 我很确定第一个是最多价的 但只是好奇如果在 H
  • Laravel Vue 组件只能传递数字?

    在我的 UserMenu vue 中我写道 export default props nameVal data return 并在blade php中
  • Facebook PHP-SDK 页面刷新后似乎丢失了 userID

    我似乎登录工作正常 我可以登录 接受应用程序 第一次 然后显示用户信息 例如姓名 图片 等 然而 当我刷新页面时 userid 又回到 0 我必须再次登录 我不确定问题是什么 我必须在每次页面加载时重新启动它还是什么 我不知道 我会发布一些
  • 如何在 Windows 上安装 Zend 框架

    安装 Zend Framework 就是这么简单 是的 对 好吧 我正在写一本初学者的书 有一件不太详细的事情是最重要的部分 安装该死的东西 浏览了几个小时的快速入门指南后 它只说 下载 Zend 添加包含目录 bla bla 然后就完成了
  • 使用PHP从doc、xls文件中读取数据

    我想知道是否可以从 doc 和 xls 文件中读取数据并将 将内容读取到图像文件中 创建文档的页面样本 例如 我有一些文件希望我的客户购买 所以我需要自动创建小图像 例如我的文档样本 我们将不胜感激您的帮助 对于读取 xls 文件 我真的推
  • PHP 中的 -> 和 :: 有什么区别?

    这个东西困扰我好久了 一直找不到 在 php 中使用 和 gt 之间的类有什么区别 让我举个例子 想象一个名为 MyClass 的类 该类中有一个函数 myFunction 使用有什么区别 MyClass myclass new MyCla
  • 雄辩的第一个 where 子句

    我想知道 Laravel 如何实现雄辩的语法 以便可以静态调用第一个 where 子句User where User where id 23 gt where email email gt first 他们有吗public static f
  • session_start():无法解码会话对象

    我有时在使用 CodeIgniter 时遇到以下问题 错误 2019 03 05 19 57 26 gt 严重性 警告 gt session start 无法解码会话对象 会话已被销毁 system libraries Session Se
  • PHP 表单 - 带验证蜜罐

    我有以下内容 效果很好 但对垃圾邮件机器人开放 我想放入蜜罐 而不是验证码 下面的代码适用于验证姓名 电子邮件 消息 但我无法让它与蜜罐一起工作 任何人都可以查看 蜜罐 代码并告诉我如何修复它吗 我希望表单给出 success2 不允许垃圾
  • 在本地 SDK 服务器上工作时,实时 Google App Engine 上出现 404

    我已经在GAE标准环境上部署了几个PHP应用程序 一切正常 现在我正在部署一个新应用程序 该应用程序位于由gcloudSDK按预期工作 终端命令 dev appserver py log level warning app yaml 问题是
  • 使用 Vue 的多模式组件

    我在 Vue 中实现动态模式组件时遇到问题 A common approach I follow to display a set of data fetched from the db is I dump each of the rows

随机推荐