CI框架实现递归生成文件路径并重新生成图片功能
发布:smiling 来源: PHP粉丝网 添加日期:2018-11-15 09:42:33 浏览: 评论:0
本文实例讲述了CI框架实现递归生成文件路径并重新生成图片功能。分享给大家供大家参考,具体如下:
- <!--?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
- set_time_limit(0);
- class Img_build extends CI_Controller{
- private static $img_path = 'upload_old/';
- private static $new_path = 'upload/';
- function __construct()
- {
- parent::__construct();
- }
- /**
- * 获取需要读取的路径的信息
- * $map = array (
- * '路径名' =--> array (文件1, 文件2, 文件3)
- * )
- */
- public function index()
- {
- $this->load->helper('directory');
- //读取路径的信息
- $map = directory_map(self::$img_path, FALSE, TRUE);
- echo "<pre>";
- print_r($map);
- echo "</pre>";
- if(!emptyempty($map) && is_array($map))
- {
- $this->build_path($map);
- }
- }
- /**
- * 递归生成相应的路径
- * @param array $map
- */
- private function build_path($map = array())
- {
- if(!file_exists(self::$new_path))
- {
- mkdir(self::$new_path, 0777);
- }
- foreach($map as $key => $val)
- {
- $old_img_path = self::$img_path;
- $old_tmp_path = self::$img_path.$key.'/';
- $new_img_path = self::$new_path;
- $new_tmp_path = self::$new_path.$key.'/';
- if(is_dir($old_tmp_path))
- {
- //echo $new_tmp_path;
- if(!file_exists($new_tmp_path))
- {
- mkdir($new_tmp_path, 0777);
- }
- self::$img_path = $old_tmp_path;
- self::$new_path = $new_tmp_path;
- echo 'path:'.self::$img_path."<hr>";
- $this->load->helper('directory');
- $c_map = directory_map($old_tmp_path, FALSE, TRUE);
- // echo "<pre>";
- // print_r($c_map);
- // echo "</pre>";
- if(!emptyempty($c_map) && is_array($c_map))
- {
- $this->build_path($c_map);
- }
- }
- if(is_file(self::$img_path.$val))
- {
- echo 'file:'.self::$img_path.$val."<hr>";
- $img = array();
- $img['source_image'] = self::$img_path.$val;
- $img['new_image'] = self::$new_path.$val;
- $this->build_img($img);
- }
- self::$img_path = $old_img_path;
- self::$new_path = $new_img_path;
- }
- }
- /**
- * 根据原图片生成新的图片
- * @param array $img
- * $img = array('source_image'=> '原图片的路径', 'new_image' => '新图片路径')
- */
- private function build_img($img = array())
- {
- if(!is_array($img) || emptyempty($img))
- {
- return FALSE;
- }
- //设置图像生成参数
- $config['image_library'] = 'gd2'; //设置图像库
- $config['source_image'] = $img['source_image']; //设置原始图像的名字/路径
- $config['create_thumb'] = FALSE; //让图像处理函数产生一个预览图像
- $config['maintain_ratio'] = TRUE; //指定是否在缩放或使用硬值的时候使图像保持原始的纵横比例
- //$config['quality'] = 200;
- $img_info = array();
- $img_info = getimagesize($config['source_image']);//获取图片的尺寸
- if(is_array($img_info) && !emptyempty($img_info))
- {
- $config['width'] = $img_info[0];
- $config['height'] = $img_info[1];
- }
- $config['new_image'] = $img['new_image']; //新图片路径
- $this->load->library('image_lib', $config); //加载图片处理类
- $this->image_lib->initialize($config); //调用
- if ( ! $this->image_lib->resize())
- {
- echo $this->image_lib->display_errors();
- }//phpfensi.com
- $this->image_lib->clear(); //清除图片处理参数
- }
- }
- ?>
Tags: CI框架 递归生成文件
相关文章
- ·分享淘宝API辅助函数-适用CI框架(2014-08-27)
- ·php ci框架中加载css和js文件失败的解决方法(2020-10-12)
- ·CI框架开发新浪微博登录接口源码完整版(2021-01-15)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)