php 7.4 -> 8.0 마이그레이션 좀 도와주세요

dateno1   
   조회 2553   추천 0    

하단 코드를 적용하니 create_function관련 에러가 납니다

아마 8대에서 허용되지 않는 너무 낡은 함수나 문법을 사용하는게 원인인듯한데, 정확하게 어느 부분인지 잘 몰라서 글 올려봅니다 (제가 짠 코드조차 아니다보니 더 막막하네요)

여기만 수정하면 7 -> 8으로 마이그레이션 완료될듯한데, 시작부터 애먹여서 smf 코드 리셋하고, 패키지 재검토하는등 삽질을 하고 있습니다 (삽질하다보니 5시 넘겨버렸네요)


<![CDATA[      array(

        'tag' => 'jwp',

        'type' => 'unparsed_commas_content',        

        'content' => ($context['browser']['is_ie'] && !$context['browser']['is_mac_ie'] ? '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="$2" height="$3"><param name="movie" value="' $settings['default_theme_url'] . '/player.swf" /><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="wmode" value="transparent" /><param name="flashvars" value="file=$1&image=$4" /><embed src="' $settings['default_theme_url'] . '/player.swf" width="$2" height="$3" bgcolor="#000000" allowscriptaccess="always" allowfullscreen="true" flashvars="file=$1&image=$4" /><noembed><a href="$1" target="_blank" class="new_win">$1</a></noembed></object>' '<embed src="' $settings['default_theme_url'] . '/player.swf" width="$2" height="$3" bgcolor="#000000" allowscriptaccess="always" allowfullscreen="true" flashvars="file=$1&image=$4" /><noembed><a href="$1" target="_blank" class="new_win">$1</a></noembed>'),

        'validate' => create_function('&$tag, &$data, $disabled', '

          if (isset($disabled[\'url\']))

            $tag[\'content\'] = \'$1\';

          elseif (strpos($data[0], \'http://\') !== 0 && strpos($data[0], \'https://\') !== 0)

            $data[0] = \'http://\' . $data[0];

        '),

        'disabled_content' => '<a href="$1" target="_blank" class="new_win">$1</a>',

      ),

/////////////////////////////////////////////////////////////

<![CDATA[

      array(

        'tag' => 'thumb',

        'type' => 'unparsed_content',

        'content' => '<img width="100" src="$1" style="cursor:pointer" title="' $txt['thumb_tag'] . '" alt="' $txt['thumb_tag'] . '" onclick="javascript:if (this.width == 100) this.removeAttribute(\'width\'); else this.width=100;" />',

        'validate' => create_function('&$tag, &$data, $disabled''$data = strtr($data, array(\'\' => \'\'));'),

        'disabled_content' => '($1)',

      )

맨날 삽질만 하고 삽니다

http://www.2cpu.co.kr/hardware_2014/44147
컴 케이스 작다고 불타거나 하지 않아요

짧은글 일수록 신중하게.
Dreaday 2022-04
소스 내용만 보면 theme 테마를 띄울 떄 ie or mac에 따라 flash player를 분기 쳐주는 부분 같습니다
가로 세로등 위치 , 길이 조정 포함.

create_function은 8.x 버전에서 제거 되었으니 7.x에 되어잇는 걸 가져와서 넣어주시면 되지 않을까 싶습니다.

https://runebook.dev/ko/docs/php/function.create-function
     
dateno1 2022-04
거의 밤세다시피해서 저런 기본적인것도 이해못했었네요

코드를 function으로 고쳐적던지, function으로 create_function을 재구현하면 되겠네요
httpd 2022-04
코드 일부를 올려보시죠. http://httpd.co.kr
     
dateno1 2022-04
저게 코드입니다

본문에 적힌대로 smf의 코드인데, 상호 의존 엉켜있어서 파일 1개 올려도 소용이 없어요 (db도 필수)
dateno1 2022-04
각각
'validate' => function(&$tag, &$data, $disabled) {
if (isset($disabled['url']))
$tag['content'] = '$1';
elseif (strpos($data[0], 'http://') !== 0 && strpos($data[0], 'https://') !== 0)
$data[0] = 'http://' . $data[0];
},

validate' => function (&$tag, &$data, $disabled) {
$data = strtr($data, array('<br>' => ''));
}
로 수정하였습니다 (혹시 같은 문제로 참고하실분 계실껄 대비해서 남겨둡니다)


QnA
제목Page 2668/5710
2015-12   1690684   백메가
2014-05   5156344   정은준1
2021-11   2060   나기냥
2013-03   11851   주황별
2016-01   4876   눈팅돌이
2023-06   2308   블루스맨
2006-06   6905   김승용
2016-12   4900   prmk
2003-12   10252   박찬일
2018-02   6216   inquisitive
2006-07   5494   윤종완
2023-06   2881   Frinc
2014-09   21347   미수맨
2010-02   7660   방o효o문
2016-01   3957   PE81미정환
2014-10   4058   무엇을선택…
2010-03   7310   김효수
2014-10   3945   나우마크
2019-04   3157   일론머스크
2020-07   3101   이삭의작은…
2004-01   11142   홍순형
2006-08   6046   윤치열