2012-09-13 3 views
1

Étant donné que j'ai un script php de complexité arbitraire, en cours d'exécution sur un serveur Web apache2, et je veux vérifier que ce script ne sort que xhtml valide. Un moyen d'y parvenir est de valider la sortie de ce script php dans le script chaque fois qu'il est exécuté, et de stocker les erreurs et les avertissements générés dans une base de données mysql.sur la validation XHTML fly (sortie PHP)

Est-ce possible?

Merci!

EDIT: Je suppose que le problème principal est ici devient la sortie du script en cours sans avoir à réécrire chaque appel echo.

EDIT2: Je préfère la validation w3c sgml sur html tidy.

Répondre

2

Vous ne pouvez pas vous enregistrer mais aussi des erreurs communes fixer à l'aide tidy

Exemple de 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; 
?> 

Affichera:

<!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> 
+0

c'est bien, mais je préfère utiliser l'analyseur sgml w3c au lieu de bien rangé. Mais cela m'a déjà beaucoup aidé, merci :) –

0

est bien sûr que possible. Vous devez rechercher un programme ou un service qui valide pour vous le balisage XHTML.


Le problème est en fait la vitesse et les performances de votre application. Vous devez définitivement mettre en cache les sorties!

+0

pourrait vous s'il vous plaît être un peu plus précis? –

0

Cette classe vous permettra validate output for proper HTML5. Vous ne voulez pas faire cette exécution, car cela ralentirait votre temps d'exécution. Au lieu de cela, créez un ensemble de tests que vous pouvez exécuter avant de déployer le site Web. Personnellement, je préfère PHPUnit comme cadre de test.