鑑於我有一個任意複雜的php腳本,運行在apache2 web服務器上,我想檢查這個腳本只輸出有效的xhtml。動態XHTML驗證(PHP輸出)
實現此目的的一種方法是在腳本每次運行時驗證此php腳本的輸出,並將生成的錯誤和警告存儲在mysql數據庫中。
這可能嗎?
謝謝!
編輯:我猜這裏的主要問題是獲取當前腳本的輸出,而不會重寫每個echo
調用。
EDIT2:我更喜歡W3C的sgml驗證通過html tidy。
鑑於我有一個任意複雜的php腳本,運行在apache2 web服務器上,我想檢查這個腳本只輸出有效的xhtml。動態XHTML驗證(PHP輸出)
實現此目的的一種方法是在腳本每次運行時驗證此php腳本的輸出,並將生成的錯誤和警告存儲在mysql數據庫中。
這可能嗎?
謝謝!
編輯:我猜這裏的主要問題是獲取當前腳本的輸出,而不會重寫每個echo
調用。
EDIT2:我更喜歡W3C的sgml驗證通過html tidy。
你不僅可以檢查,而且修復使用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>
當然是可能的。您必須搜索爲您驗證XHTML標記的程序或服務。
問題實際上是您的應用程序的速度和性能。你一定要緩存輸出!
請問您能更具體些嗎? –
本課程將讓你validate output for proper HTML5。您不希望執行此運行時,因爲這會減慢執行時間。相反,創建一組您可以在部署網站之前運行的測試。我個人比較喜歡PHPUnit作爲測試框架。
這很好,但我寧願使用w3c sgml解析器而不是整潔。但這已經幫了我很多,謝謝:) –