php8인데 소스 함수 어떻게 변경하죠..
본문
예전에 그누에서 얻은 소스를 사용하고 있는데 이부분이 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
)
);
}
답변을 작성하시기 전에 로그인 해주세요.