PHP 7.0 으로 사용시 오류/경고문 해결법 - 2 배열변수의 첨자오류개선

개발팁 & 소식

PHP 7.0 으로 사용시 오류/경고문 해결법 - 2 배열변수의 첨자오류개선

PHP 7.0으로 변경하시는경우 오류가 발생하시죠

수많은 경고문도 로그에 쌓이게되고..

 

<주요문제점>

2. 배열의 첨자에 텍스트사용

 

<해결책>

1. 우선 E_ALL옵션으로 경고문을 죄다 노출합니다.

  @마르스컴퍼니 님의 팁참고   https://sir.kr/so_note/46

 

2. 오류가 나타나는 영역들을 찾아갑니다.

 

3. [column_name] 으로 된부분을 ['column_name'] 으로 변경합니다.

 

   (해결)

 

문제는 이것이 아니라 너무 많다는것이 문제이죠

 

<편법>

에디터들을 활용합니다.

에디터 마다 파일전체 일괄바꾸기가 존재합니다.

 

제가 주로 활요하는것은 notepad++ 을 사용합니다. 

Acroedit나 editplus 도 존재하는것으로 알고있습니다.

 

전체파일들을 대상으로 변경시에는 

(1) 백업필수

(2) 로컬에서 작업

(3) 여러번변경할 것을 인지한 후

 

notepad++을 예를들면 

Ctrl+F를 누르면 찾기가 나오는데 

 

3번째 탭은 [파일에서 찾기] 가 있습니다.

 

그중 배열의 첨자를 변경하는 패턴은

 

1. [ 를 [' 로 변경

(1) 디렉토리는 원하는 디렉토리로 이동 - 주로 스킨하위만 사용하세요 (이하중복설명생략)

(2) 찾을내용 : [

(3) 바꿀내용 : ['

(4) 모든하위폴더포함 체크   (이하 중복설명 생략)

 

우선 [모두찾기로 ] 검토를 해봅니다.

원하는 대상들이 맞으면 

 

(5) 모두바꾸기 실행

    한참 수행후 종료됩니다.

 

2. ] 를  '] 로 변경

   

(1) 찾을내용 : ]

(2) 바꿀내용 : ']

(3) 모두바꾸기 실행

 

------

여기서부터는 존재하는데도 변경된 대상을 원복시킵니다.

 

3. ['' 을  [' 로 

(1) 찾을내용 : [''

(2) 바꿀내용 : ['

(3) 모두바꾸기 실행

 

 

4. ''] 을  '] 로 

(1) 찾을내용 : '']

(2) 바꿀내용 : ']

(3) 모두바꾸기 실행

 

또 검토해보면 대상이 있겠죠

배열첨자를 ['idx'] 가 아닌 ["idx"] 로 사용한경우

 

5. ['" 을  [' 로 

(1) 찾을내용 : ['"

(2) 바꿀내용 : ['

(3) 모두바꾸기 실행

 

6. "'] 을  '] 로 

(1) 찾을내용 : "']

(2) 바꿀내용 : ']

(3) 모두바꾸기 실행

 

그럼 끝일까요? 

아닙니다.

 또 존재합니다.

 

7. [$i]와 같이 된경우가 변경되었으면 ['$i'] 로 되어있을겁니다.

    이게 문제가 없는것 같으나 숫자로 작동될 첨자가 문자로 이식되서 오작동합니다.

(1) 찾을내용 : ['$

(2) 바꿀내용 : [$

(3) 모두바꾸기 실행

 

8. 짝을 맞출때 변수의 끝은 찾기가 어렵죠

   이번엔 일괄이 불가능하지만

   전체 대상을 찾을수는 있습니다.

(1) 찾을내용 : [$

(2) 모두찾기 실행

(3) 찾아진내용을 하나씩 클릭해서 변수첨자뒤에 존재하는 [$i'] 와 같이된부분에서

   '] 를 ] 로 재변경합니다.

 

--------

 

상당히 번거롭게 작업되는 내용이긴합니다만

특정 스킨이 오래된 형태일경우 

스킨하위내용을 대상으로 디렉토리를 지정해서 처리하면

원활한 결과를 얻으실수있습니다.

 

 

 

본 내용은 그누보드 사이트에 팁으로 제가 직접 공개한 내용입니다.

 

, , , , , , ,

0 Comments
Category
Facebook Twitter GooglePlus KakaoStory KakaoTalk NaverBand