Terry Very Good

[MySQL, PHP, LINUX] DB의 사진명과 실제 파일의 사진명 바꿔주는 법(CONCAT, RENAME, opendir) 본문

프로그래밍

[MySQL, PHP, LINUX] DB의 사진명과 실제 파일의 사진명 바꿔주는 법(CONCAT, RENAME, opendir)

테리베리 2021. 2. 24. 11:31
728x90
반응형

초기 pic_name의 값(<쪽)과 사진명(>쪽)은 아래와 같다.

 

위 상태에서

<MYSQL>
UPDATE cons.cons_pic_datalist SET pic_name = CONCAT(LEFT(pic_name,5),"ccons-",RIGHT(pic_name,14));
<LINUX>
rename 2020- 2020-ccons- 2020-*
rename 2021- 2021-ccons- 2021-*

를 실행해주고나면 pic_name의 값(<쪽)과 사진명(>쪽)은 아래와 같다.

 

위 상태에서 latlng_seq를 끼워넣어야하는데, DB는 성공했으나, rename명령은 잘 안돌아가서.. 제일 처음의 사진파일들에서 아래 php로 작업했다.

UPDATE cons.cons_pic_datalist SET pic_name = CONCAT(LEFT(pic_name,18),"00",latlng_seq,RIGHT(pic_name,8));
<?php
$dir = "/home/web_server/www/ospnavi_mdf/upload2/";

$searchName = '.png';

// Open a known directory, and proceed to read its contents
if (is_dir($dir)) {
    if ($dh = opendir($dir)) {
        while (($file = readdir($dh)) !== false) {
                if(strpos($file, $searchName) !== false) {
                        $split_file = explode( '-', $file);
                        $a = $split_file[0]."-ccons-".$split_file[1]."-001-".$split_file[2];
                        echo $file ."|->|". $a."\n";
                        usleep(333000);
                        if(rename($file, $a))
                        {
                                echo "파일이름변경 성공";
                        }
                }
       }
        closedir($dh);
    }
}
?>

를 실행해주고나면 pic_name의 값(<쪽)과 사진명(>쪽)은 아래와 같다.

 

 

rename abc xyz abc*

abc라는 이름을 가진 파일에서 abc를 xyz로 바꿉니다. 즉 abc가 xyc로 바뀝니다.

예를 들어 abc1, abc2, abc3이 있을 때

abc01, xyz1로 바뀝니다.

728x90
반응형