tidy::parseString
tidy_parse_string
(PHP 5, PECL tidy >= 0.5.2)
tidy::parseString -- tidy_parse_string — Parse a document stored in a string
Description
Object oriented style
Procedural style
Parses a document stored in a string.
Parameters
-
input
-
The data to be parsed.
-
config
-
The config
config
can be passed either as an array or as a string. If a string is passed, it is interpreted as the name of the configuration file, otherwise, it is interpreted as the options themselves.For an explanation about each option, visit » http://tidy.sourceforge.net/docs/quickref.html.
-
encoding
-
The
encoding
parameter sets the encoding for input/output documents. The possible values for encoding are: ascii, latin0, latin1, raw, utf8, iso2022, mac, win1252, ibm858, utf16, utf16le, utf16be, big5, and shiftjis.
Return Values
Returns a new tidy instance.
Examples
Example #1 tidy::parseString() example
<?php
ob_start();
?>
<html>
<head>
<title>test</title>
</head>
<body>
<p>error<br>another line</i>
</body>
</html>
<?php
$buffer = ob_get_clean();
$config = array('indent' => TRUE,
'output-xhtml' => TRUE,
'wrap' => 200);
$tidy = tidy_parse_string($buffer, $config, 'UTF8');
$tidy->cleanRepair();
echo $tidy;
?>
The above example will output:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title> test </title> </head> <body> <p> error<br /> another line </p> </body> </html>
Notes
Note: The optional parameters
config
andencoding
were added in Tidy 2.0.
See Also
- tidy::parseFile() - Parse markup in file or URI
- tidy::repairFile() - Repair a file and return it as a string
- tidy::repairString() - Repair a string using an optionally provided configuration file
- PHP Руководство
- Функции по категориям
- Индекс функций
- Справочник функций
- Другие базовые расширения
- Tidy
- Функция tidy::body() - Возвращает объект tidyNode, начиная с тега <body> разобранного tidy-дерева
- Функция tidy::cleanRepair() - Выполнить настроенную очистку и восстановление разобранной разметки
- Функция tidy::__construct() - Создает новый tidy-объект
- Функция tidy::diagnose() - Запуск настроенной диагностики для разобранной и восстановленной разметки
- Функция tidy::$errorBuffer() - Возвращает предупреждения и ошибки, возникшие при разборе указанного документа
- Функция tidy::getConfig() - Получает текущую конфигурацию Tidy
- Функция tidy::getHtmlVer() - Получает обнаруженную HTML версию для указанного документа
- Функция tidy::getOpt() - Возвращает значение указанного параметра конфигурации для документа tidy
- Функция tidy::getoptdoc() - Возвращает описание для опции с указанным названием
- Функция tidy::getRelease() - Получить дату релиза (версию) для библиотеки Tidy
- Функция tidy::getStatus() - Получает статус указанного документа
- Функция tidy::head() - Возвращает объект tidyNode, начиная с тега <head> разобранного tidy-дерева
- Функция tidy::html() - Возвращает объект tidyNode, начиная с тега <html> разобранного tidy-дерева
- Функция tidy::isXhtml() - Определяет, является ли документ XHTML-документом
- Функция tidy::isXml() - Определяет, является ли документ общим XML-документом (не HTML/XHTML)
- Функция tidy::parseFile() - Разбор разметки в файле или URI
- Функция tidy::parseString() - Разбор документа, хранимого в строке
- Функция tidy::repairFile() - Воcстанавливает разметку файла и возвращает его в виде строки
- Функция tidy::repairString() - Восстанавливает строку, используя по возможности конфигурационный файл
- Функция tidy::root() - Возвращает объект tidyNode, представляющий вершину разобранного tidy-дерева
Коментарии
<?php
/**
* UTF-8 HTML5-compatible Tidy
*
* @param string $html
* @param array $config
* @param string $encoding
* @link http://tidy.sourceforge.net/docs/quickref.html
*/
function tidy_html5($html, array $config = [], $encoding = 'utf8') {
$config += [
'clean' => TRUE,
'doctype' => 'omit',
'indent' => 2, // auto
'output-html' => TRUE,
'tidy-mark' => FALSE,
'wrap' => 0,
// HTML5 tags
'new-blocklevel-tags' => 'article aside audio bdi canvas details dialog figcaption figure footer header hgroup main menu menuitem nav section source summary template track video',
'new-empty-tags' => 'command embed keygen source track wbr',
'new-inline-tags' => 'audio command datalist embed keygen mark menuitem meter output progress source time video wbr',
];
$html = tidy_parse_string($html, $config, $encoding);
tidy_clean_repair($html);
return '<!DOCTYPE html>' . PHP_EOL . $html;
}
$html = '</z><p><a href="#">Link</a></p><p>Second para</p>';
echo tidy_html5($html);
Output:
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<p><a href="#">Link</a></p>
<p>Second para</p>
</body>
</html>
<?php
/**
* Simpler version without pretty print config options.
*/
function tidy_html5($html, array $config = [], $encoding = 'utf8') {
$config += [
'doctype' => '<!DOCTYPE html>',
'drop-empty-elements' => 0,
'new-blocklevel-tags' => 'article aside audio bdi canvas details dialog figcaption figure footer header hgroup main menu menuitem nav section source summary template track video',
'new-empty-tags' => 'command embed keygen source track wbr',
'new-inline-tags' => 'audio command datalist embed keygen mark menuitem meter output progress source time video wbr',
'tidy-mark' => 0,
];
$html = tidy_parse_string($html, $config, $encoding); // doctype not inserted
tidy_clean_repair($html); // doctype inserted
return $html;
}
$html = '</z><p><a href="#">Link</a></p><p><img src="logo.png"/>Seçond para</p><i class="fa"></i><p></p>';
echo tidy_html5($html);
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<p><a href="#">Link</a></p>
<p><img src="logo.png">Seçond para</p>
<i class="fa"></i>
<p></p>
</body>
</html>
echo tidy_html5($html, ['indent'=>2, 'indent-spaces'=>4]);
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<p><a href="#">Link</a></p>
<p><img src="logo.png">Seçond para</p><i class="fa"></i>
<p></p>
</body>
</html>
echo tidy_html5($html, ['indent'=>1], 'ascii');
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<p>
<a href="#">Link</a>
</p>
<p>
<img src="logo.png">Seçond para
</p><i class="fa"></i>
<p></p>
</body>
</html>
echo tidy_html5($html, ['show-body-only'=>1]);
<p><a href="#">Link</a></p>
<p><img src="logo.png">Seçond para</p>
<i class="fa"></i>
<p></p>
The configuration reference for Tidy has moved to https://api.html-tidy.org/