一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - CI框架實現遞歸生成文件路徑并重新生成圖片功能

CI框架實現遞歸生成文件路徑并重新生成圖片功能

2019-09-23 10:54WhoAmMe PHP教程

這篇文章主要介紹了CI框架實現遞歸生成文件路徑并重新生成圖片功能,涉及CodeIgniter框架自定義圖片控制器類實現文件目錄遞歸以及調用圖片處理擴展類進行圖片生成相關操作技巧,需要的朋友可以參考下

本文實例講述了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(!empty($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(!empty($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) || empty($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) && !empty($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();
    }    
    $this->image_lib->clear(); //清除圖片處理參數
  }
}
?>

 

希望本文所述對大家基于CodeIgniter框架的PHP程序設計有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 波多野结在线 | 午夜在线观看免费完整直播网页 | 亚洲精品网址 | 大陆国产vs国产对白 | 五月天精品在线 | ffyybb免费福利视频 | 国产精品一区三区 | 精品久久久久久国产91 | 美女用手扒开粉嫩的屁股 | 国产中文字幕 | 美女撒尿部位无遮挡 | 天天舔天天干天天操 | 波多野结衣女老师 | 亚洲AV无码专区国产精品麻豆 | 午夜dj影院在线观看完整版 | 国产主播99 | 秘书小说阿蛮 | 波多野结衣同性系列698 | 国产精品日韩欧美一区二区 | 丫鬟粗大狠狠贯穿h | 国产精品美女久久久久 | 亚洲国产一区二区三区青草影视 | 日本b站一卡二不卡三卡四卡 | 国产成人亚洲精品91专区手机 | 糖心在线观看网 | 亚洲女同一区二区 | 荡娃艳妇系列小说 | 精品午夜中文字幕熟女人妻在线 | 国产成人一区二区三区影院免费 | 色天天综合网色鬼综合 | 亚洲黄色高清 | 欧美贵妇videos办公室360 | 亚洲老头老太hd | 新影音先锋男人色资源网 | 1986葫芦兄弟全集免费观看第十集 | 草莓视频首页 | 久久精品黄AA片一区二区三区 | 国产成人亚洲精品一区二区在线看 | 国产成人一区二区三区小说 | 99精品国产综合久久久久 | 亚洲激情婷婷 |