The configuration reference for Tidy has moved to https://api.html-tidy.org/
(PHP 5, PHP 7, PHP 8, PECL tidy >= 0.5.2)
tidy::parseString -- tidy_parse_string — Analyse un document HTML contenu dans une chaîne
Style orienté objet
$string
, array|string|null $config
= null
, ?string $encoding
= null
): boolStyle procédural
$string
, array|string|null $config
= null
, ?string $encoding
= null
): tidy|falseAnalyse un document contenu dans une chaîne.
string
Les données à analyser.
config
La configuration config
peut être passée
sous forme de tableau ou de chaîne de caractères. Si une chaîne de caractères est passée,
elle est interprétée comme le nom du fichier de configuration,
et sinon, elle est interprétée comme les options elles-mêmes.
Pour une explication sur chaque option, voyez » http://api.html-tidy.org/#quick-reference.
encoding
Le paramètre encoding
configure l'encodage
pour les documents d'entrée et de sortie. Les valeurs possibles sont
ascii
, latin0
, latin1
,
raw
, utf8
, iso2022
,
mac
, win1252
, ibm858
,
utf16
, utf16le
, utf16be
,
big5
et shiftjis
.
tidy::parseString() retourne true
en cas de succès.
tidy_parse_string() retourne une nouvelle instance de
tidy en cas de succès.
Tout de deux, la méthode et la fonction retourne false
en cas d'échec.
Version | Description |
---|---|
8.0.0 |
config et encoding sont désormais nullable.
|
Exemple #1 Exemple avec tidy::parseString()
<?php
ob_start();
?>
<html>
<head>
<title>test</title>
</head>
<body>
<p>erreur<br />une autre ligne</p>
</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;
?>
L'exemple ci-dessus va afficher :
<!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> erreur<br /> une autre ligne </p> </body> </html>
The configuration reference for Tidy has moved to https://api.html-tidy.org/
<?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>
<?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>