메뉴 건너뛰기

프로그램언어

조회 수 227 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

HP로 만들어진 오래된 홈페이지에 PHP 버전을 올릴 경우 여러가지 문제가 발생할 수 있습니다. 파라미터를 변수에 자동으로 할당하는 register_globals 옵션 문제, <? 태그를 사용하는 short_open_tag 옵션 문제, 버전이 올라가면서 지원하지 않는 함수가 생기는 문제 등입니다.

 

register_globals 옵션은 PHP 5.3.0에서 DEPRECATED 되었고, PHP 5.4.0 부터는 제거되어서 사용할 수 없습니다.

 

이번에 알아볼 것은 버전이 올라가면서 지원되지 않는 함수들 중 가장 많이 나타나는 몇가지를 알아볼 것입니다.

 

PHP 버전을 올리고 실행을 해보면 지원되지 않는 함수로 인해 다음과 같은 에러 메세지가 보여질 수 있습니다.

 

Call to undefined function eregi()

 

PHP 5.3.0 부터 DEPRECATED 되었고, PHP 7.0.0 버전에서는 완전히 없어진 많이 쓰이는 함수들 로 다음과 같은 것들이 있습니다.

 

- ereg() : 정규식을 사용하여 문자열 매칭 여부를 판단합니다.(대소문자 구분)

- ereg_replace() : 정규식을 사용하여 문자열을 대치합니다.(대소문자 구분)

- eregi() : 정규식을 사용하여 문자열 매칭 여부를 판단합니다.(대소문자 구분하지 않음)

- eregi_replace() : 정규식을 사용하여 문자열을 대치합니다.(대소문자 구분하지 않음)

- split() : 문자열을 구분하로 분리합니다.

 

1. preg_match()는 ereg()와 eregi()를 대체합니다.

 

먼저 기존 함수의 사용법을 보겠습니다. 아래 예는 $subject가 소문자 abc로 시작하는지 체크합니다. 대소문자를 구분하지 않고 체크하려면 eregi() 함수를 사용하면 되겠습니다.

 

<?php 
	$subject = "abcdef"; 
	$pattern = '^abc'; 
	if(ereg($pattern, $subject) { 
		echo("match"); 
	} 
?>

 

ereg()를 대체하는 새로운 함수인 preg_match() 의 사용법 입니다. 정규식 패턴을 만드는데 차이점이 보입니다. 

패턴의 시작과 끝에 '/' 를 넣어야 합니다.

대소문자를 구분하지 않고 비교하려면 패턴의 끝에 "i" 문자를 입력합니다. 

$pattern = '/^abc/i'; 가 되겠습니다.

 

<?php 
	$subject = "abcdef";
	$pattern = '/^abc/'; 
	if(preg_match($pattern, $subject) { 
		echo("match"); 
	} 
?>

2. preg_replace()는 ereg_replace()와 eregi_replace() 를 대체합니다. 

주의할 점을 위의 preg_match() 에서와 동일합니다.

정규식 패턴의 앞과 뒤에 '/' 를 추가하고, 대소문자를 구분하지 않을때는 패턴 끝에 "i" 를 추가합니다.

 

<?php
	$subject = "abcdef";
	$pattern = '/^ABC/i'; 
	$subject = preg_replace($pattern, '', $subject); 
	echo($subject); 
?>

 

3. explode() 는 split() 함수의 문자열 분리 기능을 대체할 수 있습니다.

 

<?php
	$daytime = split(" ", "2017-02-02 14:30 235"); 
	print_r($daytime); 

	$daytime = explode(" ", "2017-02-02 14:30 235"); 
	print_r($daytime); 
?>

 

 

List of Articles
번호 제목 날짜 조회 수
320 CodeIgniter에서 PHPExcel 사용하기 file 2017.03.06 20289
319 csv파일 다루기. fputcsv(), fgetcsv() 2021.03.26 558
318 cUrl를 이용한 json 데이타 주고 받기 2020.09.28 1253
317 curl을 이용하여 post, get 방식 으로 데이터 전송하기 2023.01.12 333
316 current() next() key() 그외 배열관련 함수 2021.03.26 253
315 date() 함수의 출력 형식 2021.03.26 241
314 DAUM 지도 API 좌표→주소(주소->좌표) 변환 2020.10.05 431
313 DB 내용을 화면에 출력(이중 for 문) 2015.04.14 21246
312 DB 연동 4단 셀렉트 박스 2018.09.28 6085
311 DB상의 많은 파일을 한꺼번에 다운받기 2014.02.27 28332
310 dddotag - 허용하지 않는 태그 걸러내기 2019.01.16 1850
309 Drag/Drop HTML elements 2014.03.26 19535
» ereg(), eregi(), ereg_replace(), eregi_replace(), split() 대체 2023.01.12 227
307 explode - 문자열 나눔 2016.12.23 19943
306 fcm 푸시 알림 php 테스트 2018.07.19 6044
305 fileatime 파일에 최종적으로 접근한 시간을 반환 2016.12.23 18117
304 fopen 파일 열기 2015.04.14 20297
303 FPDF - PHP로 PDF 만들기 2014.02.27 21075
302 gcm 푸시 알림 php 테스트 2018.07.19 5582
301 gd_info 사용 가능한 GD 라이브러리에 대한 정보를 배열로 반환 2016.12.23 17989
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 17 Next
/ 17

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved