create_function를 PHP7.2 형식으로 전환하려면?

create_function를 PHP7.2 형식으로 전환하려면?

QA

create_function를 PHP7.2 형식으로 전환하려면?

본문


$callback = create_function('$arg', 'return mw_soundcloud($arg[1], $arg[2]);');
$str = preg_replace('/\[soundcloud url="([^"]+)".*params="([^"]+)".*\]/i', $callback, $str);
 
.......
 
function mw_soundcloud($src, $param)
{
    $src = str_replace('"', '', $src);
    $src = str_replace('"', '', $src);
    $param = str_replace('"', '', $param);
    $param = str_replace('"', '', $param);
    $s = sprintf('<iframe width="100%%" height="162" scrolling="no" frameborder="no" src="https://w.soundcloud.com/player/?url=%s&%s"></iframe>', urlencode($src), urlencode($param));
    return $s;
}
 

 

 

위 코드 첫 라인에서 아래와 같은 에러를 뿜는데...

 

Deprecated: Function create_function() is deprecated in C:\AutoSet10\public_html\mw7\skin\board\miwit\mw.lib\mw.function.lib.php on line 1511

 

어떤 식으로 변경해줘야 에러를 해결 가능할까요?

※ 단순히 안 보이게 하는 거 말구..^^

 

 

 

PS.

아래처럼 바꿔봤는데도 에러가 나네요.


$callback = function($arg) use($src, $param) {
    global $src, $param;
    return mw_soundcloud($arg[1], $arg[2]);
};

 

이 질문에 댓글 쓰기 :

답변 2

 


function mw_soundcloud($matches)
{ 
    return sprintf('<iframe width="100%%" height="162" scrolling="no" frameborder="no" src="https://w.soundcloud.com/player/?url=%s&%s"></iframe>', urlencode($matches[1]), urlencode($matches[2]));
    
}
$str = preg_replace_callback('/\[soundcloud url="([^"]+)".*params="([^"]+)".*\]/i', 'mw_soundcloud', $str);

<?php
function mw_soundcloud($src, $param)
{
    $src = str_replace('"', '', $src);
    $src = str_replace('"', '', $src);
    $param = str_replace('"', '', $param);
    $param = str_replace('"', '', $param);
    $s = sprintf('<iframe width="100%%" height="162" scrolling="no" frameborder="no" src="https://w.soundcloud.com/player/?url=%s&%s"></iframe>', urlencode($src), urlencode($param));
    return $s;
}
// < 7.2
//$callback = create_function('$arg', 'return mw_soundcloud($arg[1], $arg[2]);');
// >= 7.2
$callback = function ($arg) { return mw_soundcloud($arg[1], $arg[2]); };
$str = 'zzz[soundcloud url="http://www.soundcloud.com/a/1.mp3" params="a=1&b=2"z]zzz';
$str = preg_replace_callback('/\[soundcloud url="([^"]+)".*params="([^"]+)".*\]/i', $callback, $str);
echo $str;
?>
답변을 작성하시기 전에 로그인 해주세요.
전체 123,664 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT