php버전문제로인한 익명함수 에러문제입니다..

php버전문제로인한 익명함수 에러문제입니다..

QA

php버전문제로인한 익명함수 에러문제입니다..

답변 2

본문

기존에 xe보드로 만들어진 홈페이지를 저희쪽에 옮기고 있는데

php가 5.2버전이라 익명함수가 인식되지못해서 에러가난다고 합니다.

 


$attrs = array();
    if(preg_match_all('/([\w:-]+)\s*=(?:\s*(["\']))?(?(2)(.*?)\2|([^ ]+))/s', $match[3], $m))
    {
        foreach($m[1] as $idx => $name)
        {
            if(strlen($name) >= 2 && substr_compare($name, 'on', 0, 2) === 0)
            {
                continue;
            }
            $val = preg_replace_callback('/(?:x([a-fA-F0-9]+)|0*(\d+));/', function($n) {return chr($n[1] ? ('0x00' . $n[1]) : ($n[2] + 0)); }, $m[3][$idx] . $m[4][$idx]);
            $val = preg_replace('/^\s+|[\t\n\r]+/', '', $val);
            if(preg_match('/^[a-z]+script:/i', $val))
            {
                continue;
            }
            $attrs[$name] = $val;
        }
    }

 

$val = preg_replace_callback('/(?:x([a-fA-F0-9]+)|0*(\d+));/', function($n) {return chr($n[1] ? ('0x00' . $n[1]) : ($n[2] + 0)); }, $m[3][$idx] . $m[4][$idx]);

 

이부분인것 같은데 어떻게 수정해야할지를 잘 모르겠습니다.. 기존에 그누보드만 써본 초보라;;

 

조언부탁드립니다.

이 질문에 댓글 쓰기 :

답변 2

이렇게 테스트해 볼수 있습니다.


<?php
$match = array('', '', '', '<div class="abc" data-a=\'def\'>123</div>');
function cb_00($n) {return chr($n[1] ? ('0x00' . $n[1]) : ($n[2] + 0)); }
$attrs = array();
    if(preg_match_all('/([\w:-]+)\s*=(?:\s*(["\']))?(?(2)(.*?)\2|([^ ]+))/s', $match[3], $m))
    {
        foreach($m[1] as $idx => $name)
        {
            if(strlen($name) >= 2 && substr_compare($name, 'on', 0, 2) === 0)
            {
                continue;
            }
            //$val = preg_replace_callback('/(?:x([a-fA-F0-9]+)|0*(\d+));/', function($n) {return chr($n[1] ? ('0x00' . $n[1]) : ($n[2] + 0)); }, $m[3][$idx] . $m[4][$idx]);
            $val = preg_replace_callback('/(?:x([a-fA-F0-9]+)|0*(\d+));/', 'cb_00', $m[3][$idx] . $m[4][$idx]);
            $val = preg_replace('/^\s+|[\t\n\r]+/', '', $val);
            if(preg_match('/^[a-z]+script:/i', $val))
            {
                continue;
            }
            $attrs[$name] = $val;
        }
    }
    
print_r($m);
?>
답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 2,662
© SIRSOFT
현재 페이지 제일 처음으로