Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
解析有效的html(php-tidy)_Php_Parsing_Htmltidy - Fatal编程技术网

解析有效的html(php-tidy)

解析有效的html(php-tidy),php,parsing,htmltidy,Php,Parsing,Htmltidy,我想使用tidy插件,但只用于一个字符串。我使用的代码是: tidy_repair_string($string); 我的问题是这个脚本在一个文件中,我只需要使用一次就可以包含他 但是要有重复的html、正文和标题标记(文件的一般标记) 如何只验证我的字符串而不返回html等 示例:如果我的字符串是Text我只想返回Text 不是: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN"> <html> <head>

我想使用tidy插件,但只用于一个字符串。我使用的代码是:

tidy_repair_string($string);
我的问题是这个脚本在一个文件中,我只需要使用一次就可以包含他

但是要有重复的html、正文和标题标记(文件的一般标记)

如何只验证我的字符串而不返回html等

示例:如果我的字符串是
Text
我只想返回
Text

不是:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title></title>
</head>
<body>
<b><s>Text</s></b>
</body>
</html>

正文

谢谢

也许这样行得通。如果没有,请参阅 更多选择

$string = tidy_repair_string($string, array(
'output-html' => false,
'doctype' => false)); 

正如您在问题中已经指出的,Tidy操作完整的HTML文档,因此修复后的文档包含(如果配置)doctype,但始终包含head部分

您正在寻找一个HTML片段,它不是完整的HTML文档

这种差异已经包含了解决方案:将HTML片段作为主体注入,将其作为文档修复,然后仅获取主体的子元素作为字符串。完成。下面是一个相当简短但已经有效的示例:

/* Tidy example: Clean a HTML fragment */

$fragment = '<b><s>Text</b>';

$tidy = new Tidy;
$tidy->parseString($fragment);
$tidy->cleanRepair();

$result = implode('', (array) $tidy->body()->child); // <b><s>Text</s></b>
此示例将提供以下输出,演示默认配置中
getType
返回值的含义:

Valid fragment - Status: 0
  HTML: <b><s>Text</s></b>
  Repaired: <b><s>Text</s></b>
Unclosed tag - Status: 1
  HTML: <b><s>Text</b>
  Repaired: <b><s>Text</s></b>
Unknown tag - Status: 2
  HTML: <unknown></unknown>
  Repaired: 
Unfinished attribute - Status: 2
  HTML: <a href=">link</a>
  Repaired: <a href="%3Elink%3C/a%3E"></a>
有效片段-状态:0
HTML:文本
修复:文本
未关闭的标签-状态:1
HTML:文本
修复:文本
未知标签-状态:2
HTML:
修复:
未完成属性-状态:2
HTML:
修复:

这超出了您的要求,我只是添加了一个附加示例,例如,查看字符串中的所有标记是否都已关闭。

没有。我会试着看看sourceforge。谢谢,只是看看。
Valid fragment - Status: 0
  HTML: <b><s>Text</s></b>
  Repaired: <b><s>Text</s></b>
Unclosed tag - Status: 1
  HTML: <b><s>Text</b>
  Repaired: <b><s>Text</s></b>
Unknown tag - Status: 2
  HTML: <unknown></unknown>
  Repaired: 
Unfinished attribute - Status: 2
  HTML: <a href=">link</a>
  Repaired: <a href="%3Elink%3C/a%3E"></a>