即时XHTML验证(PHP输出)

时间:2012-09-13 15:42:58

标签: php validation xhtml

鉴于我有一个任意复杂的php脚本,在apache2 webserver上运行,我想检查这个脚本只输出有效的xhtml。

实现这一目标的一种方法是在每次运行时验证脚本中脚本的输出,并将生成的错误和警告存储在mysql数据库中。

这可能吗?

谢谢!

编辑:我想这里的主要问题是获取当前脚本的输出而不重写每个echo调用。

EDIT2:我更喜欢w3c sgml验证而不是html tidy。

3 个答案:

答案 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作为测试框架。