php遍曆目錄輸出目錄及其下的所有圖片檔案

來源:互聯網
上載者:User

標籤:

在做網站的時候,需要給文章內所有的圖片添加上logo,如何利用ThinkPHP來實現。

ThinkPHP為我們很好的提供了影像處理類,給文章中的所有圖片加上浮水印的思路,上傳的圖片檔案都儲存在一個檔案夾下面,我只需要擷取該檔案夾以及子檔案夾下面的所有圖片,遍曆一次,加上浮水印即可,因此目前的難度只是怎麼擷取檔案中的圖片,並且遍曆一次即可。[在ImagesController控制器中具體會出現二維數組的遍曆];因此添加浮水印的圖片問題就轉換成了利用PHP遍曆目錄輸出目錄及其下的所有圖片檔案

//遍曆目錄輸出目錄及其下的所有檔案 利用函數的遞迴解決function my_scandir($dir){      $files=array();      if(is_dir($dir)){          if($handle=opendir($dir)){              while(($file=readdir($handle))!==false){                  if($file!=‘.‘ && $file!=".."){                      if(is_dir($dir."/".$file)){                          $files[$file]=my_scandir($dir."/".$file);                      }else{                          $files[]=$dir."/".$file;  //擷取檔案的完全路徑                        $filesnames[]=$file;      //擷取檔案的檔案名稱                    }                  }              }          }      }      closedir($handle);      return $files;     //return $filesnames; }

接下來便是處理圖片浮水印的問題了,

//對於一維數組的遍曆        $picArr = my_scandir(‘./Public/Uploads/txtPig‘);//返回的是數組格式的資料        dump($picArr);        foreach ($picArr as $value) {            $image = new \Think\Image();             $image->open($value)->text(‘pengjun‘,‘./Public/consola.ttf‘,20,‘#000000‘,\Think\Image::IMAGE_WATER_SOUTHEAST)->save($value);         }
//php二維數組的遍曆,利用兩個foreach()遍曆即可        $picArr2 = my_scandir(‘./Public/plugins\kindeditor\attached\image‘);        dump($picArr2);        foreach ($picArr2 as $key => $value1) {            foreach ($value1 as $key2 => $value2) {                $image = new \Think\Image();                 $image->open($value2)->text(‘pengjun‘,‘./Public/consola.ttf‘,20,‘#000000‘,\Think\Image::IMAGE_WATER_SOUTHEAST)->save($value2);             }        }

 

php遍曆目錄輸出目錄及其下的所有圖片檔案

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.