close
圖片上傳的程式需要用到「檢查資料夾是否已經有相同的圖片檔名」,所以寫了一個檢查的函式。 不過後來才發現自己做了一件很笨的事,原來本來就有那個函式的存在了,我還笨笨的讓程式從資料夾裡面一個個的把檔名讀取出來判斷...囧rz
//==================== // 檢查是否有相同圖檔名稱 //==================== function checkName($imageName){ //定義存放圖檔路徑 $imageDirPath = 'huiyu'; $imageDir = dir($imageDirPath); //反覆讀過全部的檔案名稱,並搜尋是否有同檔名 while ($readName = $imageDir->read()){ //目錄不檢查 if(!is_dir($imageDirPath.'/'.$readName)){ //取得主檔名和副檔名 $main = substr($readName,0,strrpos($readName,'.')); $extend = array_pop(explode('.',$readName)); //檢查檔案是否存在 if($readName == $imageName && !$reCkeck){ //已存在,自動更換新的名字後再測試 $imageName = "copy-$main.$extend"; //重新檢查 $imageDir->rewind(); continue; } } } $imageDir->close(); //回傳最後決定的檔名 return $imageName; }
顯然我做一件很笨的事件,利用php檔案部分的函式庫就能更輕鬆完成
//==================== // 簡短寫法 //==================== //定義存放圖檔的路徑 define('IMAGE_DIR_PATH', 'files/image/'); function checkName($imageName){ //若檔名為中文,轉為url編碼 $imageName = urlencode($imageName); //反覆檢查 while(file_exists(IMAGE_DIR_PATH.$imageName)){ $imageName = 'copy-'.$imageName; } return $imageName; }
真是令人~~
全站熱搜
留言列表