PHP 5.3 부터 ereg() 함수가 죽었다, preg_match() 로 교체하라 > 온라인강의

본문 바로가기
 
 
 
오늘 2,113
어제 2,341
최대 2,526
전체 3,261,225

최근 방문자

1673
994
927
1806
2341
2113
24 25 26 27 28 29
비즈니스의 시작 비즈명함 ~ 가격, 품질, 배송 3가지 만족을 드리는 비즈명함 / 즉석명함 / 급행서비스 / 서울 전지역 수도권일부 3시간배송

select * from g5_menu where me_use = '1' and me_link like '%lecture%'
온라인강좌 홈 > 온라인강좌 > 온라인강좌

PHP | PHP 5.3 부터 ereg() 함수가 죽었다, preg_match() 로 교체하라 (update. 2014-11-24)

페이지 정보

작성일2014-11-12 10:28 조회6,090회 댓글0건

본문

ereg계열의 함수는 정규식으로 문자열을 찾거나, 찾은문자열을 바꾸거나 하는 함수입니다.
ereg_replace($patten, $replacement, $string); 형태로 쓰입니다.
이 함수는 5.3.0 이상부터 preg_replace로 바꾸어야합니다. 두개의 함수의 인자순서는 같지만, ereg함수와 preg함수는 정규식을 표현하는 방법이 약간 틀립니다.

$str = ereg_replace('[a-z]+', 'A', $str);
ereg함수가 위와 같이 정규식을 적었다면, preg함수는 아래와 같이 적습니다.
$str = preg_replace('/[a-z]+/', 'A', $str);

그리고 ereg계열이 대소문자를 구분하는 것과 구분하지 않는 것이 ereg, eregi 두가지 함수로 구분되었다면, preg는 하나의 함수로 처리됩니다. 예를 들어 위의 preg_replace 함수의 정규식에서 대소문자를 구분하지 않겠다고 한다면, 아래와 같이 i가 추가됩니다.
$str = preg_replace('/[a-z]+/i', 'A', $str);

그 외에 문자열을 검색하던 ereg함수는 preg_match함수로 대체되어야 합니다.
$str = 'abcedf';
if (ereg('[abc]'. $str, $matches) == true) print_r($matches);
뭐 저런식으로 ereg함수를 사용하듯이 preg_match함수도 사용하면 되지만 정규식 입력부분은 역시 약간 다릅니다.

$str = 'abc123abc';
if (preg_match('/([a-z]+)([0-9]+)/', $str, $matches) == true) print_r($matches);
위의 처럼 3번째 인자에 검색된 패턴이 배열로 담기는 인자를 넣습니다.
preg_match가 true가 된다면, $matches안에는 일치된 문자열이 배열로 들어가게 되죠. 정규식에 ( ) 가 없다면 $matches[0]에 일치된 전체패턴이 들어가게 되겠고, ( )가 있다면 $matches[0] 이후의 $matches[1]부터 ( ) 안의 일치부분만 빼올 수 있습니다.


ereg()
변경전 : ereg('\.([^\.]*$)', $this->file_src_name, $extension);
변경후 : preg_match('/\.([^\.]*$)/', $this->file_src_name, $extension);


eregi()
변경전 : eregi('\.([^\.]*$)', $this->file_src_name, $extension);
변경후 : preg_match('/\.([^\.]*$)/i', $this->file_src_name, $extension);


ereg_replace()
변경전 : $this->file_dst_name_body = ereg_replace('[^A-Za-z0-9_]', '', $this->file_dst_name_body);
변경후 : $this->file_dst_name_body = preg_replace('/[^A-Za-z0-9_]/', '', $this->file_dst_name_body);


관련자료
http://www.devthought.com/2009/06/09/fix-ereg-is-deprecated-errors-in-php-53/
http://blog.arzz.com/409
http://php.net/manual/kr/function.preg-match.php
  • 페이스북으로 보내기
  • 트위터로 보내기
  • 구글플러스로 보내기

댓글목록

등록된 댓글이 없습니다.


목록

Total 1,945건 1 페이지
온라인강의 목록
번호 제목
1945
Search SEO 최적화 메타 구성하기 (update.2017-03-29)새글  Hit.9
1944
JSP alert 창 띄우기 (write.2017-03-29)새글  Hit.9
1943
JSP MSSQL 접속설정하기 (write.2017-03-29)새글  Hit.10
1942
그누보드 [G5] 전체쪽지 보내기 (write.2017-03-29)새글  Hit.9
1941
1940
Adobe Adobe CS3~CC 프로그램 완전삭제 (write.2017-03-21)  Hit.117
1939
1938
JSP utf-8 한글깨짐 (write.2017-03-20)  Hit.125
1937
1936
1935
1934
1933
그누보드 [G5] 게시물 순서 바꾸기 (write.2017-03-16)  Hit.175
1932
전자결제 [PayPal] PHP 결제연동 (write.2017-03-15)  Hit.176
1931
전자결제 [PayPal] ASP 결제 연동 (write.2017-03-15)  Hit.171
1930
1929
1928
JSP Service Temporary Unavailable! (write.2017-03-13)  Hit.189
1927
그누보드 [G5] [최신글] 한줄소식 (write.2016-02-19)인기글첨부파일  Hit.1706
1926
1925
1924
1923
1922
일반 FireFox 플러그인 (write.2015-02-28)인기글  Hit.2069
1921
게시물 검색
 
 
상호: 해피정닷컴 대표:정창용 사업자등록번호:119-05-36414 (08394) 서울시 구로구 디지털로 242 한화비즈메트로1차 1502호
전화: 070-7600-3500 팩스:02-865-3528 개인정보관리:정창용 mail@happyjung.com 에스크로확인
개인정보취급방침
COPYRIGHT 2001~2017 해피정닷컴. All rights reserved. 부가통신사업신고:서울체신청-1217 통신판매신고:2014-서울구로-0074
 
모바일 버전으로 보기