(PHP 5, PHP 7, PHP 8)
tidyNode::isHtml β ΠΡΠΎΠ²Π΅ΡΡΠ΅Ρ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΡΠ·Π΅Π» ΡΠ·Π»ΠΎΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°
ΠΡΠΎΠ²Π΅ΡΡΠ΅Ρ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΡΠ·Π΅Π» ΡΠ·Π»ΠΎΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°, Π½ΠΎ Π½Π΅ ΠΊΠΎΡΠ½Π΅Π²ΡΠΌ ΡΠ·Π»ΠΎΠΌ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°.
Π‘ΠΈΠ³Π½Π°ΡΡΡΠ° ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ².
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ true, Π΅ΡΠ»ΠΈ ΡΠ·Π΅Π» ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ·Π»ΠΎΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°, Π½ΠΎ Π½Π΅ ΠΊΠΎΡΠ½Π΅Π²ΡΠΌ ΡΠ·Π»ΠΎΠΌ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°, Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ false.
| ΠΠ΅ΡΡΠΈΡ | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
|---|---|
| 7.3.24, 7.4.12 | ΠΡΠΏΡΠ°Π²Π»Π΅Π½ΠΎ, ΡΠ΅ΠΏΠ΅ΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π²Π΅Π΄ΡΡ ΡΠ΅Π±Ρ ΡΠ°Π·ΡΠΌΠ½ΠΎ. Π Π°Π½ΡΡΠ΅ ΠΏΠΎΡΡΠΈ Π»ΡΠ±ΠΎΠΉ ΡΠ·Π΅Π» ΡΡΠΈΡΠ°Π»ΡΡ ΡΠ·Π»ΠΎΠΌ HTML. |
ΠΡΠΈΠΌΠ΅Ρ #1 ΠΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ HTML-ΠΊΠΎΠ΄Π° ΠΈΠ· ΡΠΌΠ΅ΡΠ°Π½Π½ΠΎΠ³ΠΎ HTML-Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°
<?php
$html = <<< HTML
<html><head>
<?php echo '<title>Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ</title>'; ?>
<#
/* JSTE ΠΊΠΎΠ΄ */
alert('ΠΡΠΈΠ²Π΅Ρ ΠΠΈΡ');
#>
</head>
<body>
<?php
// PHP-ΠΊΠΎΠ΄
echo 'ΠΏΡΠΈΠ²Π΅Ρ ΠΌΠΈΡ!';
?>
<%
/* ASP ΠΊΠΎΠ΄ */
response.write("ΠΡΠΈΠ²Π΅Ρ ΠΠΈΡ!")
%>
<!-- ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ -->
ΠΡΠΈΠ²Π΅Ρ ΠΠΈΡ
</body></html>
ΠΠ° ΠΏΡΠ΅Π΄Π΅Π»Π°ΠΌΠΈ HTML ΠΊΠΎΠ΄Π°
HTML;
$tidy = tidy_parse_string($html);
$num = 0;
get_nodes($tidy->html());
function get_nodes($node) {
// ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠ·Π΅Π» Π½Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ ΡΡΠ΅Π±ΡΠ΅ΠΌΠΎΠΌΡ ΡΠΈΠΏΡ
if($node->isHtml()) {
echo "\n\n# html Π½ΠΎΠ΄Π° #" . ++$GLOBALS['num'] . "\n";
echo $node->value;
}
// ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΌΠΊΠΎΠ² Ρ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠ·Π»Π°
if($node->hasChildren()) {
foreach($node->child as $child) {
get_nodes($child);
}
}
}
?>Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ°:
# html ΡΠ·Π΅Π» #1
<html>
<head>
<?php echo '<title>Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ</title>'; ?><#
/* JSTE ΠΊΠΎΠ΄ */
alert('ΠΡΠΈΠ²Π΅Ρ ΠΠΈΡ');
#>
<title></title>
</head>
<body>
<?php
// PHP-ΠΊΠΎΠ΄
echo 'ΠΏΡΠΈΠ²Π΅Ρ ΠΌΠΈΡ!';
?><%
/* ASP ΠΊΠΎΠ΄ */
response.write("ΠΡΠΈΠ²Π΅Ρ ΠΠΈΡ!")
%><!-- ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ -->
ΠΡΠΈΠ²Π΅Ρ ΠΠΈΡΠΠ° ΠΏΡΠ΅Π΄Π΅Π»Π°ΠΌΠΈ HTML ΠΊΠΎΠ΄Π°
</body>
</html>
# html ΡΠ·Π΅Π» #2
<head>
<?php echo '<title>Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ</title>'; ?><#
/* JSTE ΠΊΠΎΠ΄ */
alert('ΠΡΠΈΠ²Π΅Ρ ΠΠΈΡ');
#>
<title></title>
</head>
# html ΡΠ·Π΅Π» #3
<title></title>
# html ΡΠ·Π΅Π» #4
<body>
<?php
// PHP-ΠΊΠΎΠ΄
echo 'ΠΏΡΠΈΠ²Π΅Ρ ΠΌΠΈΡ!';
?><%
/* ASP ΠΊΠΎΠ΄ */
response.write("ΠΡΠΈΠ²Π΅Ρ ΠΠΈΡ!")
%><!-- ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ -->
ΠΡΠΈΠ²Π΅Ρ ΠΠΈΡΠΠ° ΠΏΡΠ΅Π΄Π΅Π»Π°ΠΌΠΈ HTML ΠΊΠΎΠ΄Π°
</body>