메뉴 건너뛰기

프로그램언어

조회 수 229 추천 수 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); 
?>

 

 

  1. CodeIgniter에서 PHPExcel 사용하기

    Date2017.03.06 Views20292
    Read More
  2. csv파일 다루기. fputcsv(), fgetcsv()

    Date2021.03.26 Views560
    Read More
  3. cUrl를 이용한 json 데이타 주고 받기

    Date2020.09.28 Views1260
    Read More
  4. curl을 이용하여 post, get 방식 으로 데이터 전송하기

    Date2023.01.12 Views340
    Read More
  5. current() next() key() 그외 배열관련 함수

    Date2021.03.26 Views255
    Read More
  6. date() 함수의 출력 형식

    Date2021.03.26 Views247
    Read More
  7. DAUM 지도 API 좌표→주소(주소->좌표) 변환

    Date2020.10.05 Views434
    Read More
  8. DB 내용을 화면에 출력(이중 for 문)

    Date2015.04.14 Views21250
    Read More
  9. DB 연동 4단 셀렉트 박스

    Date2018.09.28 Views6092
    Read More
  10. DB상의 많은 파일을 한꺼번에 다운받기

    Date2014.02.27 Views28338
    Read More
  11. dddotag - 허용하지 않는 태그 걸러내기

    Date2019.01.16 Views1855
    Read More
  12. Drag/Drop HTML elements

    Date2014.03.26 Views19537
    Read More
  13. ereg(), eregi(), ereg_replace(), eregi_replace(), split() 대체

    Date2023.01.12 Views229
    Read More
  14. explode - 문자열 나눔

    Date2016.12.23 Views19944
    Read More
  15. fcm 푸시 알림 php 테스트

    Date2018.07.19 Views6061
    Read More
  16. fileatime 파일에 최종적으로 접근한 시간을 반환

    Date2016.12.23 Views18123
    Read More
  17. fopen 파일 열기

    Date2015.04.14 Views20301
    Read More
  18. FPDF - PHP로 PDF 만들기

    Date2014.02.27 Views21088
    Read More
  19. gcm 푸시 알림 php 테스트

    Date2018.07.19 Views5585
    Read More
  20. gd_info 사용 가능한 GD 라이브러리에 대한 정보를 배열로 반환

    Date2016.12.23 Views17993
    Read More
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 17 Next
/ 17

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

© k2s0o1d4e0s2i1g5n. All Rights Reserved