1

鉴于我有一个任意复杂的 php 脚本,在 apache2 网络服务器上运行,我想检查这个脚本是否只输出有效的 xhtml。

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

这可能吗?

谢谢!

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

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

4

3 回答 3

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>
于 2012-09-13T15:51:32.390 回答
0

这当然是可能的。您必须搜索为您验证 XHTML 标记的程序或服务。


问题实际上是您的应用程序的速度和性能。你一定要缓存输出!

于 2012-09-13T15:45:23.027 回答
0

此类将让您验证正确的 HTML5 的输出。您不想执行此运行时,因为它会减慢您的执行时间。相反,在部署网站之前创建一组可以运行的测试。我个人更喜欢PHPUnit作为测试框架。

于 2015-04-01T11:36:46.277 回答