테스트 사이트 - 개발 중인 베타 버전입니다

create_function를 PHP7.2 형식으로 전환하려면? 채택완료

sinbi 6년 전 조회 4,024

</span></p>

<p><span style="font-size:14pt;">$callback = create_function('$arg', 'return mw_soundcloud($arg[1], $arg[2]);');</span></p>

<p><span style="font-size:14pt;">$str = preg_replace('/\[soundcloud url="([^"]+)".*params="([^"]+)".*\]/i', $callback, $str);</span></p>

<p> </p>

<p>.......</p>

<p> </p>

<p><span style="font-size:14pt;">function mw_soundcloud($src, $param)

{

    $src = str_replace('"', '', $src);

    $src = str_replace('"', '', $src);

    $param = str_replace('"', '', $param);

    $param = str_replace('"', '', $param);</span></p>

<p><span style="font-size:14pt;">    $s = sprintf('<iframe width="100%%" height="162" scrolling="no" frameborder="no" src="<a href="https://w.soundcloud.com/player/?url=%s&%s"></iframe>'," target="_blank" rel="noopener noreferrer">https://w.soundcloud.com/player/?url=%s&%s"></iframe>',</a> urlencode($src), urlencode($param));</span></p>

<p><span style="font-size:14pt;">    return $s;

}</span></p>

<p> </p>

<p><span style="font-size:14pt;">

 

 

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

 

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.

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

</p>

<p>$callback = function($arg) use($src, $param) {

    global $src, $param;

    return mw_soundcloud($arg[1], $arg[2]);

};

 

댓글을 작성하려면 로그인이 필요합니다.

답변 2개

채택된 답변
+20 포인트
6년 전

 

</p>

<p>function mw_soundcloud($matches)

{ 

    return sprintf('<iframe width="100%%" height="162" scrolling="no" frameborder="no" src="<a href="https://w.soundcloud.com/player/?url=%s&%s"></iframe>'," target="_blank" rel="noopener noreferrer">https://w.soundcloud.com/player/?url=%s&%s"></iframe>',</a> urlencode($matches[1]), urlencode($matches[2]));

    

}</p>

<p>$str = preg_replace_callback('/\[soundcloud url="([^"]+)".*params="([^"]+)".*\]/i', 'mw_soundcloud', $str);</p>

<p>

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

s
sinbi
6년 전
슈와이 님 감사합니다. 덕분에 잘 해결했습니다.

댓글을 작성하려면 로그인이 필요합니다.

6년 전

</p>

<p><?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="<a href="https://w.soundcloud.com/player/?url=%s&%s"></iframe>'," target="_blank" rel="noopener noreferrer">https://w.soundcloud.com/player/?url=%s&%s"></iframe>',</a> urlencode($src), urlencode($param));

    return $s;

}</p>

<p>// < 7.2

//$callback = create_function('$arg', 'return mw_soundcloud($arg[1], $arg[2]);');</p>

<p>// >= 7.2

$callback = function ($arg) { return mw_soundcloud($arg[1], $arg[2]); };</p>

<p>$str = 'zzz[soundcloud url="<a href="http://www.soundcloud.com/a/1.mp3"" target="_blank" rel="noopener noreferrer">http://www.soundcloud.com/a/1.mp3"</a> params="a=1&b=2"z]zzz';

$str = preg_replace_callback('/\[soundcloud url="([^"]+)".*params="([^"]+)".*\]/i', $callback, $str);</p>

<p>echo $str;

?></p>

<p>

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

s
sinbi
6년 전
베르만 님 답변 감사합니다.
슈와이 님 코드가 간결하게 한방에 해결되서...^^;;
설 잘 보내시기 바랍니다.

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인