preg_replace() 함수를 preg_replace_callback 함수로 변경하려는데요 채택완료
안녕하세요
에러메시지가 이렇게 나서요
Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback
아무래도 preg_replace함수를 preg_replace_callback 함수로 바꿔야 할것 같은데요
아래가 문제 에러가는 부분입니다.
아래 preg_replace함수를 preg_replace_callback 함수로 어떻게 바꿔야 할까요?
$view[rich_content] = preg_replace(
"/{이미지\:([0-9]+)[:]?([^}]*)}/ie",
"view_image(\$view, '\\1', '\\2')",
$view[content]);
답변 1개
채택된 답변
+20 포인트
답변에 대한 댓글 7개
�
8년 전
�
8년 전
찾아가는 경로입니다.
php.net
Documentaion (http://php.net/docs.php)
English (http://php.net/manual/en/)
Language Reference - Functions (http://php.net/manual/en/language.functions.php)
Anonymous functions (http://php.net/manual/en/functions.anonymous.php)
또는
'php anonymous function' 로 검색하시면 됩니다.
php.net
Documentaion (http://php.net/docs.php)
English (http://php.net/manual/en/)
Language Reference - Functions (http://php.net/manual/en/language.functions.php)
Anonymous functions (http://php.net/manual/en/functions.anonymous.php)
또는
'php anonymous function' 로 검색하시면 됩니다.
�
8년 전
감사합니다.위에 적어주신 함수들은 해당 파일 어디에 적어줘야 하나요?^^;
그리고 view_image함수는 제 소스(그누보드4 버전)에서 lib/common.lib.php에 아래처럼 있던데
아래 함수와는 다른 함수같은데 이름이 같아서 충돌문제가 안되려는지^^
// view_file_link() 함수에서 넘겨진 이미지를 보이게 합니다.
// {img:0} ... {img:n} 과 같은 형식
function view_image($view, $number, $attribute)
{
if ($view['file'][$number]['view'])
return preg_replace("/>$/", " $attribute>", $view['file'][$number]['view']);
else
//return "{".$number."번 이미지 없음}";
return "";
}
그리고 view_image함수는 제 소스(그누보드4 버전)에서 lib/common.lib.php에 아래처럼 있던데
아래 함수와는 다른 함수같은데 이름이 같아서 충돌문제가 안되려는지^^
// view_file_link() 함수에서 넘겨진 이미지를 보이게 합니다.
// {img:0} ... {img:n} 과 같은 형식
function view_image($view, $number, $attribute)
{
if ($view['file'][$number]['view'])
return preg_replace("/>$/", " $attribute>", $view['file'][$number]['view']);
else
//return "{".$number."번 이미지 없음}";
return "";
}
�
8년 전
음.. 글쎄요, 에러메세지 관련 함수명까지 올려놓으셨길래
해당 위치와 교체방법을 알고 계실꺼라 생각을 했습니다.
'function view_image' 로 검색해 보시면 될것 같습니다.
해당 위치와 교체방법을 알고 계실꺼라 생각을 했습니다.
'function view_image' 로 검색해 보시면 될것 같습니다.
�
8년 전
이해를 못해서 죄송합니다^^
적어주신 view_image 함수와 view_image_func 함수를 문제의 소스 윗부분에 그냥 위치하면 될까요?
그리고... 우연히???
알려주신 view_image함수와 똑같은 함수가
제 소스(그누보드4 버전)에서 lib/common.lib.php에 아래처럼 있던데
아래 함수와는 다른 함수같은데 이름이 같아서 충돌문제가 안되려는지^^
// view_file_link() 함수에서 넘겨진 이미지를 보이게 합니다.
// {img:0} ... {img:n} 과 같은 형식
function view_image($view, $number, $attribute)
{
if ($view['file'][$number]['view'])
return preg_replace("/>$/", " $attribute>", $view['file'][$number]['view']);
else
//return "{".$number."번 이미지 없음}";
return "";
}
적어주신 view_image 함수와 view_image_func 함수를 문제의 소스 윗부분에 그냥 위치하면 될까요?
그리고... 우연히???
알려주신 view_image함수와 똑같은 함수가
제 소스(그누보드4 버전)에서 lib/common.lib.php에 아래처럼 있던데
아래 함수와는 다른 함수같은데 이름이 같아서 충돌문제가 안되려는지^^
// view_file_link() 함수에서 넘겨진 이미지를 보이게 합니다.
// {img:0} ... {img:n} 과 같은 형식
function view_image($view, $number, $attribute)
{
if ($view['file'][$number]['view'])
return preg_replace("/>$/", " $attribute>", $view['file'][$number]['view']);
else
//return "{".$number."번 이미지 없음}";
return "";
}
�
8년 전
아니 죄송하실것 까지 없구요;; ㅋ
함수명이 같은것이 중복되어 존재하면 재선언 불가관련에러 발생합니다.
그리고 답변에 달아드린 view_image, view_image_func 는 제가 실제 각 함수의 내용을 모르기 때문에
비교와 로직 흐름을 위해 임의로 작성한 예시함수인 것이구요.
preg_replace_callback 으로 수정하시고
함수 body 안의 내용을 그에 맞는것으로 교체해 주셔야 합니다.
view_image 이름으로 사용하실 거면 현재 함수 body 를 바꿔주어야 할테구요,
view_image_func 이름으로 사용하실 거면 함수명 새로 만들고 body 알맞게 채워주셔야 하는거죠.
아니면 기존함수쪽 전혀 손대지 않으실거면
function ($matches) use ($view) { return view_image($view, $matches[1], $matches[2]); }
이런식으로 할수도 있는 것이구요.
함수명이 같은것이 중복되어 존재하면 재선언 불가관련에러 발생합니다.
그리고 답변에 달아드린 view_image, view_image_func 는 제가 실제 각 함수의 내용을 모르기 때문에
비교와 로직 흐름을 위해 임의로 작성한 예시함수인 것이구요.
preg_replace_callback 으로 수정하시고
함수 body 안의 내용을 그에 맞는것으로 교체해 주셔야 합니다.
view_image 이름으로 사용하실 거면 현재 함수 body 를 바꿔주어야 할테구요,
view_image_func 이름으로 사용하실 거면 함수명 새로 만들고 body 알맞게 채워주셔야 하는거죠.
아니면 기존함수쪽 전혀 손대지 않으실거면
function ($matches) use ($view) { return view_image($view, $matches[1], $matches[2]); }
이런식으로 할수도 있는 것이구요.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
function ($matches) use ($view) { 이런 구문은 php에서 무슨 명칭으로 찾아보면 알 수 있어요?^^