2016-07-17 15 views
4

TidyとPHPを使用してHTML文字列をクリーンアップしてHTML5ドキュメントを作成しようとしていますが、HTML3.2ドキュメントを作成しています。見てのとおり、私はConfig: missing or malformed argument for option: doctypeエラーが発生しています。私はCentOSに6とApache 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のTidyの

答えて

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

関連する問題