2012-06-17 5 views
0

도와주세요. 이 오류를 받고 있어요 :preg_match 오류 및 디버깅 PHP 코드

(!) Warning: preg_match(): Unknown modifier 'b' in C:\wamp\www\pmd\install\ioncube_checker.php on line 22

나는 다음과 같은 코드를 실행하면 : 당신은 정규식으로 /을 사용하고 있기 때문에 당신이 어떤 /을 탈출 할 필요가 구분 기호

function system_info($php_info) { 
$server_info = array(); 
$server_info['thread_safe'] = 'false'; 
$server_info['debug_build'] = 'false'; 
$server_info['php_ini_path'] = ''; 

foreach (explode("\n",$php_info) as $line) { 
    if (preg_match('/command/',$line)) { 
     continue; 
    } 

    if (preg_match('/thread safety.*(enabled|yes)/Ui',$line)) { 
     $server_info['thread_safe'] = 'true'; 
    } 

    if (preg_match('/debug.*(enabled|yes)/Ui',$line)) { 
     $server_info['debug_build'] = 'true'; 
    } 


    if (preg_match("/configuration file.*(</b></td><TD ALIGN=\"left\">| => |v\">)([^ <]*)(.*</td>*)?/",$line,$match)) { 
     $server_info['php_ini_path'] = $match[2]; 

     if ([email protected]_exists($php_ini_path)) { 
      $server_info['php_ini_path'] = ''; 
     } 
    } 

    $cgi_cli = ((strpos(php_sapi_name(),'cgi') !== false) || (strpos(php_sapi_name(),'cli') !== false)); 
    $cgi_cli ? $server_info['cgi_cli'] = 'true' : $server_info['cgi_cli'] = 'false'; 
} 
return $server_info; 

}

답변

1

\. 당신이 not using regexes to parse HTML at all을 고려해야

preg_match("/configuration file.*(</b></td><TD ALIGN=\"left\">| => |v\">)([^ <]*)(.*</td>*)?/",$line,$match) 

그러나

preg_match("#configuration file.*(</b></td><TD ALIGN=\"left\">| => |v\">)([^ <]*)(.*</td>*)?#",$line,$match) 

해야한다 -는 DOM 엔진이 훨씬 더 사용하고 PHP : 그러나, HTM 다루는 다른 구분 기호를 사용하는 것이 훨씬 쉽다 이미 has one입니다.