php8인데 소스 함수 어떻게 변경하죠..

php8인데 소스 함수 어떻게 변경하죠..

QA

php8인데 소스 함수 어떻게 변경하죠..

답변 2

본문

예전에 그누에서 얻은 소스를 사용하고 있는데 이부분이 php8 에서는 안되는거드라구요

혼자서 해보는데 안되어서 여쭤봅니다;;

 

// 베짱이님 제공 함수
function utf8_urldecode($str, $chr_set='CP949') {
    $callback_function = create_function('$matches, $chr_set="'.$chr_set.'"', 'return iconv("UTF-16BE", $chr_set, pack("n*", hexdec($matches[1])));');
    return rawurldecode(preg_replace_callback('/%u([[:alnum:]]{4})/', $callback_function, $str));
 }

이 질문에 댓글 쓰기 :

답변 2

이렇게 변경 적용해 보세요

 


function utf8_urldecode($str, $chr_set = 'CP949') {
    $callback_function = function($matches) use ($chr_set) {
        return iconv("UTF-16BE", $chr_set, pack("n*", hexdec($matches[1])));
    };
    return rawurldecode(preg_replace_callback('/%u([[:alnum:]]{4})/', $callback_function, $str));
}

create_function() 함수가 제거 되어서 발생한 문제입니다.

 


function utf8_urldecode($str, $chr_set = 'CP949') {
    return rawurldecode(
        preg_replace_callback(
            '/%u([[:alnum:]]{4})/',
            function (array $matches) use ($chr_set) {
                // 16비트 BE 인코딩 데이터를 원하는 문자셋으로 변환
                return iconv(
                    "UTF-16BE",
                    $chr_set,
                    pack("n*", hexdec($matches[1]))
                );
            },
            $str
        )
    );
}
답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 129,112
© SIRSOFT
현재 페이지 제일 처음으로