tidy::parseString

tidy_parse_string

(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

Description

Style orienté objet

public tidy::parseString(string $string, array|string|null $config = null, ?string $encoding = null): bool

Style procédural

tidy_parse_string(string $string, array|string|null $config = null, ?string $encoding = null): tidy|false

Analyse un document contenu dans une chaîne.

Liste de paramètres

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.

Valeurs de retour

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.

Historique

Version Description
8.0.0 config et encoding sont désormais nullable.

Exemples

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>

Voir aussi

add a note add a note

User Contributed Notes 2 notes

up
1
steven at nevvix dot com
5 years ago
<?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&Atilde;&sect;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>
up
0
steven at nevvix dot com
5 years ago
<?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>
To Top