1

apache2 Webサーバーで実行されている任意の複雑さのphpスクリプトがあり、このスクリプトが有効なxhtmlのみを出力することを確認したいとします。

私が思いついたこれを実現する1つの方法は、実行するたびにこのphpスクリプトの出力をスクリプトで検証し、生成されたエラーと警告をmysqlデータベースに保存することでした。

これは可能ですか?

ありがとう!

編集:echoここでの主な問題は、すべての呼び出しを書き直さずに現在のスクリプトの出力を取得することだと思います。

EDIT2 : htmltidyよりもw3csgml検証の方がいいと思います。

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の出力を検証できます。実行時間が遅くなるため、このランタイムは実行しないでください。代わりに、Webサイトを展開する前に実行できる一連のテストを作成します。私は個人的にテストフレームワークとしてPHPUnitを好みます。

于 2015-04-01T11:36:46.277 に答える