2016-07-17 8 views
4

HTML 문자열을 정리하고 Tidy 및 PHP를 사용하여 HTML5 문서를 만들려고하고 있지만 HTML3.2 문서를 만드는 중입니다. 보시다시피, Config: missing or malformed argument for option: doctype 오류가 발생합니다. 나는 CentOS의 6 아파치 2.2 PHP 버전 5.5.35을 운영하고, 그리고 php_info()는 다음을 보여줍니다Tidy를 사용하여 PHP에서 HTML5 문서 유효성 검사

tidy 

Tidy support enabled 
libTidy Release 14 June 2007 
Extension Version 2.0 ($Id: e066a98a414c7f79f89f697c19c4336c61bc617b $) 

Directive Local Value Master Value 
tidy.clean_output no value no value 
tidy.default_config no value no value 

어떻게 내가 HTML5 문서를 만들려면 어떻게해야합니까? 다음은 내 시도 :

<?php 
$html = <<<EOD 
<p>Hello</p> 
<div> 
<p data-customattribute="will be an error">bla</p> 
<p>bla</p> 
</div> 
<div> 
<p>Hi there!</p> 
<div> 
    <p>Opps, a mistake</px> 
</div> 
</div> 
EOD; 
$html="<!DOCTYPE HTML><html><head><title></title></head><body>$html</body></html>"; 

echo($html."\n\n"); 

    $config = array(
     'indent' => true, 
     'indent-spaces' => 4, 
     'doctype' => '<!DOCTYPE HTML>', 
    ); 

$tidy = new tidy; 
$tidy->parseString($html, $config, 'utf8'); 
$tidy->cleanRepair(); 
print_r($tidy); 

OUTPUT 단정의

답변

1

이전 버전은 HTML5 문서를 지원하지 않는

지지대의 HTML 5는 Sep 2015에 있던 tidy의 첫 번째 릴리스 여기서 HTML Tidy Advocacy Community Group은 tidy-html5의 첫 번째 버전을 출시했습니다.

이전 버전의 tidy를 사용 중이므로 html5 문서의 유효성을 검사하지 않도록주의하십시오.

PHP의 현재 프리 컴파일 된 릴리스는 아직 tidy-html5로 컴파일되지 않으므로 tidy-html5를 사용하려면 직접 컴파일해야합니다.

이 지침은 깔끔한-HTML5 GitHub의에서 README 파일에서 찍은 :

인해 PHP 소스의 API 변화에, "buffio.h"는 "tidybuffio.h"에서 변경해야 파일 ext/tidy/tidy.c.

입니다

- 이전의 PHP 소스 디렉토리에이 PHP를 실행 구성하기 : (자신의 PHP 설정 옵션을 사용, 여기에 단지 예) 계속 다음

sed -i 's/buffio.h/tidybuffio.h/' ext/tidy/*.c 

그리고 :

./configure --with-tidy=/usr/local 
    make 
    make test 
    make install 
+0

감사합니다 Dekel, 나는 내가 깔끔한 7 살짜리 버전이 있다는 것을 본 후 많은 것을 의심합니다. 아, 제 자신의 버전을 컴파일하십시오. 즐거움! – user1032531