프로그래밍
[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
반응형