>> Read No. 629 article  
[PHP]새로운 지역전화번호로...[수정본]

등록 2000-07-20 08:30:00     조회 5
이름 산이    

		안녕하세요?
오랫만에 팁란에 글을 올리는것 같군요...
 현재 제가 있는 회사의 DB에는 약 2000여 개의 Data가 있는데
전화번호가 모두 예전것이라 새로운 지역전화번호로 바꿀 필요가
생겼군요...
 일일이 하나씩 바꾼다는것은 무리한 일이고...
 더욱 불행한것은 지역번호가 국번-전화번호와 같은 컬럼에 있다는것이
저를 슬프게 하는군요.....(DB 설계시 따로 떼어놓았어야 하는건데....emoticon)
 만약 지역번호가 국번-전화번호와 같은 컬럼에 존재한다면
임시적으로 다음과 같이 한번 필터링(?)해서 웹브라우저로
출력해 줄 필요가 있을 것 같군요...
 더 좋은 방법이 있으면 한 수 부탁합니다...
 -----
 전화-팩스번호 : "$callfax"라는 변수일 경우,
 ** 경기도 가평/의정부에는 굳지 필요가 없군요....
** 그리고 강원도 전부를 다음과 같이 수정(03[679][0-9])
 $callfax = eregi_replace("^0353-", "033-", $callfax); // 강원도 철원
//$callfax = eregi_replace("^035[16]-", "031-", $callfax); // 경기도 가평/의정부
$callfax = eregi_replace("^03[679][0-9]-", "033-", $callfax); // 강원도 전부
$callfax = eregi_replace("^03[3-5][0-9]-", "031-", $callfax); // 경기도 전부
$callfax = eregi_replace("^05[259][0-9]-", "055-", $callfax); // 경남 전부
$callfax = eregi_replace("^05[4678][0-9]-", "054-", $callfax); // 경북 전부
$callfax = eregi_replace("^068[13]-", "063-", $callfax); // 전북 정읍/부안
$callfax = eregi_replace("^06[13689][0-9]-", "061-", $callfax); // 전남 전부
$callfax = eregi_replace("^06[57][0-9]-", "063-", $callfax); // 전북 전부
$callfax = eregi_replace("^0414-", "043-", $callfax); // 충북 영동
$callfax = eregi_replace("^04[156][0-9]-", "041-", $callfax); // 충남 전부
$callfax = eregi_replace("^04[347][0-9]-", "043-", $callfax); // 충북 전부
 -----
 *PS :
국가 번호없이 [0353-0000-0000]와  같은 경우입니다....
..
 --
전자서명을 만들지 못해서........emoticon
-------------------------------------------
 [추가한 내용] *************************
방금 전화번호를 PHP로 수정했습니다.
생각보다 간단하더군요...
 제가 했던 방법은 다음과 같습니다....
(여러가지 다은 방법이 나올 수 있습니다...배열등등을 사용해서..)
 예를 들어,
$callfax 라는 변수는 for()문이나 while()으로 만들어지므로
저 같은 경우에는 for()을 사용했습니다.
 ...
 $result = mysql_query("SELECT count(no) FROM $table");
$total_record = mysql_result($result,0,0); // 전체 레코드 수를 구한다.
...
 $result = mysql_query("SELECT no,callfax,addr FROM $table ORDER BY no DESC");
// 참고로 no 컬럼은 자연증가한 절대번호입니다...
// callfax는 전화-팩스번호 컬럼입니다...
 ...
 for($i = 0; $i <= ($total_record-1); $i++) {
   $no = mysql_result($result,$i,0);
   $callfax = mysql_result($result,$i,1);
   $addr = mysql_result($result,$i,2);
    $callfax = eregi_replace("^0353-", "033-", $callfax); // 강원도 철원
   $callfax = eregi_replace("^03[679][0-9]-", "033-", $callfax); // 강원도 전부
   $callfax = eregi_replace("^03[3-5][0-9]-", "031-", $callfax); // 경기도 전부
   $callfax = eregi_replace("^05[259][0-9]-", "055-", $callfax); // 경남 전부
   $callfax = eregi_replace("^05[4678][0-9]-", "054-", $callfax); // 경북 전부
   $callfax = eregi_replace("^068[13]-", "063-", $callfax); // 전북 정읍/부안
   $callfax = eregi_replace("^06[13689][0-9]-", "061-", $callfax); // 전남 전부
   $callfax = eregi_replace("^06[57][0-9]-", "063-", $callfax); // 전북 전부
   $callfax = eregi_replace("^0414-", "043-", $callfax); // 충북 영동
   $callfax = eregi_replace("^04[156][0-9]-", "041-", $callfax); // 충남 전부
   $callfax = eregi_replace("^04[347][0-9]-", "043-", $callfax); // 충북 전부
 mysql_query("UPDATE $table SET callfax='$callfax' WHERE no ='$no'");
// 필터링(?)한 전화번호를 다시 DB에 넣는다.
 echo ("no:$no $callfax($addr)<br>");
}
 ...
 이상입니다...
 참고로...
PHP4pl2에서 2000여개의 DATA를 고치는데 약 1초 정도 걸리는 군요..(AMD K6-3 400Mhz)
만약 PHP3로 작업하시는 분중에서 이 보다 더 많은 양을 관리하시는 분은
반드시 php3.ini(또는 php.ini)에서
 max_execution_time = 30
 부분을 넉넉하게 정하고 나서 웹서버를 반드시 재가동하시길 바랍니다.
앞의 경우는 최대 스크립트 실행시간이 30초 라는 의미입니다.
(1000만까지 for()문을 돌렸봤더니만 "못하겠다고" 에러를 내더군요...)
 *PS :
혹시 노파심에서..
반드시 백업하시고 작업을 진행하시길 바랍니다...
작업이 끝나고 위의 필터링(?)한 부분과 UPDATE SQL 부분은 지워주시길 바랍니다.
 위의 내용은 초보자를 위한 하나의 방법을 제시한 것 뿐입니다.
(DB 전문가님이 보시면 무척 혼날것 같은 느낌이............emoticon)
이름
암호
  목록보기 윗글 아랫글
글쓰기
답장쓰기 수정 삭제
정규표현식 [ 상세 검색 ]
페이지로딩: [ 0.66 초 ] 작업시간: [ 0.04 초 ]

Copyleft 1999-2026 by JSBoard Open Project
Theme Designed by IDOO All right reserved
[TOP]

적수네 동네
+
| 적수네 동네
| 공부방
| 리눅스 잡지 서고
| LSN 소스
| 링크 모음
+---+
게시판
+
| 떠들어보세!
| 질문과 답변
| 새소식과 정보
| 1원짜리 팁?
| 대화방
+---+
칼럼?
+
| 세하 훔쳐보기
| Welcome2nite
| 혜진의 염장판
+---+
리눅스 상표권
+
| 반대 서명란
| 토론 게시판
+---+
GNU
+
| GNU 선언문
| GNU GPL
| GNU 미러 목록
+---+
프로젝트?
+
| 리눅스카운터
| RC5DES
| 실질헌법 제작
+---+
커널 소식
+
| 안정 버젼: 2.4.14
+---+
테마 선택
+
LSN 방송국?
+
| OFF AIR
+---+
회원
+
| 로그인
+---+
[ 적수네 동네 ] [ 리눅스 상표권 독점 반대 ] [ 한글 리눅스 문서 프로젝트 ] [ KrLine ] [ 사랑넷 ] [ Valid HTML 4.0! ] [ SlashDot ] [ Freshmeat ]
Copyleft (C) 1998-2001 Byeong-Chan Kim . License
TIME: 1791045361
System by WYZsoft, HDD by I.O.Linux, Mizi Research, Embryo, WOWLINUX, Domain by SarangNet, Network by KrLine.