반응형
Uncaught Error: Call to undefined function create_function() 에러는 create_function() 가 php8.x부터는 지원하지 않아 발생하는 오류이다. create_function 부분을 function을 다르게 정의해서 수정하면 된다.
수정전
add_action( 'plugins_loaded', create_function( '', 'global $BBCode; $BBCode = new BBCode();' ) )
수정 후
function my_hacked_function(){
global $BBCode;
$BBCode = new BBCode();
}
add_action( 'plugins_loaded', 'my_hacked_function');
적용 예시
영카트 /lib/shop.lib.php 파일 썸네일 생성하는 부분에서 create_function() 을 사용하고 있는데 아래처럼 변경하면 php8.x 상위버전에서 오류가 나지 않는다.
수정전
// 상품이미지 업로드
function it_img_upload($srcfile, $filename, $dir)
{
if($filename == '')
return '';
$size = @getimagesize($srcfile);
if($size[2] < 1 || $size[2] > 3)
return '';
//php파일도 getimagesize 에서 Image Type Flag 를 속일수 있다
if (!preg_match('/\.(gif|jpe?g|png)$/i', $filename))
return '';
if(!is_dir($dir)) {
@mkdir($dir, G5_DIR_PERMISSION);
@chmod($dir, G5_DIR_PERMISSION);
}
$pattern = "/[#\&\+\-%@=\/\\:;,'\"\^`~\|\!\?\*\$#<>\(\)\[\]\{\}]/";
$filename = preg_replace("/\s+/", "", $filename);
$filename = preg_replace( $pattern, "", $filename);
$filename = preg_replace_callback("/[가-힣]+/",create_function('$matches', 'return base64_encode($matches[0]);'),$filename); //수정전
수정후
create_functiond으로 되어 있던 부분을 상단에 따로 function을 정의( img_func )해주고
기존에 $filename 정의 되었던 부분은 preg_replace_callback('/[가-힣]+/', 'img_func', $filename); 로 변경
//추가
function img_func($matches) {
return base64_encode($matches[0]);
}
//추가끝
// 상품이미지 업로드
function it_img_upload($srcfile, $filename, $dir)
{
if($filename == '')
return '';
$size = @getimagesize($srcfile);
if($size[2] < 1 || $size[2] > 3)
return '';
//php파일도 getimagesize 에서 Image Type Flag 를 속일수 있다
if (!preg_match('/\.(gif|jpe?g|png)$/i', $filename))
return '';
if(!is_dir($dir)) {
@mkdir($dir, G5_DIR_PERMISSION);
@chmod($dir, G5_DIR_PERMISSION);
}
$pattern = "/[#\&\+\-%@=\/\\:;,'\"\^`~\|\!\?\*\$#<>\(\)\[\]\{\}]/";
$filename = preg_replace("/\s+/", "", $filename);
$filename = preg_replace( $pattern, "", $filename);
$filename = preg_replace_callback('/[가-힣]+/', 'img_func', $filename); //수정
반응형
'개발 > php' 카테고리의 다른 글
php5.X -> php 8.X 로 버전 변경하면서 생기는 오류 해결 방법 (0) | 2024.11.26 |
---|---|
[php] explode 배열 최소값, 최대값 구하기 min(), max() (2) | 2024.07.24 |
[php] 파일 업로드 기능 DB 저장 안될 때 (4) | 2024.07.22 |
[php] DB 텍스트 특수문자 (<, >, &, ", ' 등) 인식 / html 변환 (4) | 2024.06.19 |
[php] Undefined variable, Undefined index 에러 해결 (4) | 2023.11.07 |
[php] 입력 필드 쪼개기 (체크박스 값 DB 저장) (2) | 2023.10.18 |
[그누보드/영카트] 아이코드 SMS 문자 여러명한테 보내기 (2) | 2023.07.17 |
[php] mysql 결과 카운트 / 행 개수 구하기 (2) | 2023.05.25 |