php 8 정규식 문의드립니다.

php 8 정규식 문의드립니다.

QA

php 8 정규식 문의드립니다.

본문

회원가입을 받지 않으려고 할 때

https://gnustudy.com/bbs/board.php?bo_table=gnu_tip&wr_id=103

에서 설명하는 대로

 


if (preg_match("/.*\/bbs\/(register|register_form|register_form_update)\.php?/", $_SERVER['REQUEST_URI']) && $w =='') alert('신규 회원 가입은 받지 않습니다.', G5_URL);

를 작성하여 사용하면 php 7.* 대에서는 잘 작동하는데

php 8 에서는 500에러를 보여주더군요.

 

정규식의 문제인지 문법의 문제인지 모르겠습니다.

 

이럴 때에는 어떻게 해결해야 할까요?

 

이 질문에 댓글 쓰기 :

답변 1

https://www.php.net/manual/en/function.preg-match.php 

를 보면 최소 3개가 들어가야 되는것 같습니다.

 


preg_match('/(a)(b)*(c)/', 'ac', $matches);

 

아마도,  PHP7에서는 3번째가 없어도 동작이 되었지만, PHP8에서는 엄격한 룰 적용으로 세번째 변수가 없어서 오동작하는 것이 아닐지..

 

 

답변을 작성하시기 전에 로그인 해주세요.
전체 220
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT