블로그 이미지
초딩입맛제주아재
하고 싶은 것만 하며 살고 싶다

calendar

      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
2006. 12. 12. 15:05 Programing/아뜰리에
친구의 부탁으로 간단하게 만들어보았다.
실행권한을 주고 CLI모드에서 실행하면 된다.

간단하게 인자 두개를 입력 받는데
첫번째 인자값은 찾을 확장자,
두번째 인자값은 바꿀 확장자이다.

./file_rename.php php php4
이렇게 하면 현재 디렉토리 내의 확장자가 php인 모든 파일의 확장자가 php4로 바뀐다.


코드는 무척 간단하다...

#!/usr/local/php/bin/php -q
<?php
/**
* filename : file_rename.php
* author   : asrada2001@hotmail.com
* date     : 2006-12-12
* desc     : 현재 디렉토리에 존재하는 파일의 확장자 일괄 변경
**/

if(sizeof($argv) < 3 || $argv[1] == Null || $argv[2] == Null){
  echo "require two arguments...\n\n";
  exit;
}

$dir = '.';

$searchExt = '.'.$argv[1];
$replaceExt = '.'.$argv[2];

if($handle = opendir($dir)){
  while (false !== ($file = readdir($handle))){
       if($file != '.' && $file != '..' && strpos($file,$searchExt) > 0){

           $fname   = substr($file,0,strrpos($file,$searchExt));
           $newName = $fname.$replaceExt;

           if(rename($file,$newName) == true){
               echo $file.' -> '.$newName." [OK]\n";
           }else{
               echo $file.' -> '.$newName." [FALSE]\n";
           }
       }
  }

  closedir($handle);
}
?>


주의 할 것은 소스파일의 맨 윗줄을 공백으로 두면 안된다는것이다.
친구놈이 소스코드를 메신져로 던져줬더니 붙여넣기 하면서 한줄을 공백으로 비워두고는
안된다고 타박을 해댔다 -_-;;

필요에 의한 개발은 언제나 재밌다.
posted by 초딩입맛제주아재

댓글을 달아 주세요

  1. BlogIcon LazyGyu 2010.02.17 23:45  Addr Edit/Del Reply

    뭔가 필요에 의해서 개발하신 거라 생각하지만 혹시나 해서..

    rename .php .php4 *.php

    이 명령어를 써도 같은 효과를 낼 수 있지 않을까요?