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

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

QA

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

본문

기존에 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);
?>
답변을 작성하시기 전에 로그인 해주세요.
전체 1,010
QA 내용 검색

회원로그인

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