잘못된 PHP 배열 참조 코드 수정하는 정규식 > 정규표현식

정규표현식

잘못된 PHP 배열 참조 코드 수정하는 정규식 정보

잘못된 PHP 배열 참조 코드 수정하는 정규식

본문

외주  작업중에.. 소스를 보니, 



if($member[mb_id] && $member[mb_id] == $write[mb_id]){..}


 

이렇게 array  참조하는 코드가 많네요.. 구버전의 PHP 에선 잘 동작하지만, 저건 쓰면 안되는 문법으로 최근 PHP버전에선 오류(또는 경고)를 뿜어냅니다.

 

일일이 수정하긴에 많아서,, 정규식으로 replace 해보았습니다.

PHPStorm 이지만, 다른 툴에서도 정규식으로 변경하면 동작할거라 봅니다.


search : \$([a-zA-Z0-9_]+)\[([a-zA-Z0-9_\-]+)\]?
replace : \$$1\['$2'\]
 
결과 : 
$member[mb_id] ==> $member['mb_id']

 

 

 

 

추천
1
  • 복사

댓글 2개

안녕하세요.
문제점을 알려주셔서 감사합니다.
해당 코드로 테스트 해보니 아래와 같은 코드들이 검색되어 일괄 변경으로 처리하기에는 어려울 것이라 생각됩니다.
감사합니다.


adm/board_form.php:
  1198                          
  1199:                         $option_value = $order_by_str = $v[0];
  1200:                         if( $v[0] === 'wr_num, wr_reply' ){

lib/Excel/php_writeexcel/class.writeexcel_format.inc.php:
  147          // Set the type of the XF record and some of the attributes.
  148:         if ($_[0] == "style") {
  149              $style = 0xFFF5;

  376          // or the color string converted to an integer,
  377:         if (isset($colors[strtolower($color)])) {
  378:             return $colors[strtolower($color)];
  379          }
© SIRSOFT
현재 페이지 제일 처음으로