2016-07-17 5 views
4

Я пытаюсь очистить строку HTML и создать документ HTML5 с использованием Tidy и PHP, однако я создаю документ HTML3.2. Как видно, я получаю ошибку Config: missing or malformed argument for option: doctype. Я работает PHP версии 5.5.35 с Centos 6 и Apache 2.2, и php_info() показывает следующее:Проверка документа HTML5 на PHP с использованием Tidy

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); 

ВЫВОД

ответ

1

Старые версии Tidy не поддерживают HTML5 документы

Первый выпуск tidy опорам HTML 5 был в Sep 2015 , где HTML Tidy Advocacy Community Group выпустил первую версию tidy-html5.

Обратите внимание, что вы используете старую версию аккуратного устройства, поэтому вы не будете проверять документы html5 ableto.

Текущие предварительно скомпилированные релизы php еще не скомпилированы с tidy-html5, поэтому, если вы захотите использовать tidy-html5, вам придется скомпилировать его самостоятельно.

Эти инструкции были взяты из файла README в кругленькую-html5 GitHub:

Из-за изменений API в источнике PHP, «buffio.h» должен быть изменен на «tidybuffio.h» в файл ext/tidy/tidy.c.

То есть - до настройки PHP запустить это в исходном каталоге PHP:

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

А затем продолжить (просто пример здесь, использовать свои собственные параметры PHP конфигурации):

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

Спасибо Dekel, я подозревал так много, увидев, что у меня была 7-летняя версия аккуратного. Ах, скомпилируйте мою собственную версию. Радость! – user1032531