鉴于我有一个任意复杂的php脚本,在apache2 webserver上运行,我想检查这个脚本只输出有效的xhtml。
实现这一目标的一种方法是在每次运行时验证脚本中脚本的输出,并将生成的错误和警告存储在mysql数据库中。
这可能吗?
谢谢!
编辑:我想这里的主要问题是获取当前脚本的输出而不重写每个echo
调用。
EDIT2:我更喜欢w3c sgml验证而不是html tidy。
答案 0 :(得分:2)
您不仅可以使用tidy
检查并修复常见错误来自http://www.php.net/manual/en/tidy.parsestring.php
的示例<?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;
?>
这将输出:
<!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>
答案 1 :(得分:0)
当然可以。您必须搜索为您验证XHTML标记的程序或服务。
问题实际上是您的应用程序的速度和性能。你肯定要缓存输出!
答案 2 :(得分:0)
这门课会让你validate output for proper HTML5。您不希望执行此运行时,因为它会减慢执行时间。在您部署网站之前,创建一组可以运行的测试。我个人更喜欢PHPUnit作为测试框架。