Ah oui ? J'ai toujours cru que le parseur DOM plantait si le document XML n'était pas syntaxiquement correct, tu en es sur ?DOMDocument suffis, il peut même réparé ta source.
il fait comme les navigateurs, si le DOM est foireux il va quand même sortir quelque chose,mais si c'est vraiment bien bien naze là il pourra rien faire, par contre les erreurs sont activés par défaut il suffis de déactiver le rapport avec libxml_use_internal_errorsAh oui ? J'ai toujours cru que le parseur DOM plantait si le document XML n'était pas syntaxiquement correct, tu en es sur ?DOMDocument suffis, il peut même réparé ta source.
normalement il te dit dans quelle fichier y'a une erreur ? sinon tu pourrais gérer ca avec register_shutdown_functionJe verrai en développant le moteur. Là je code un mini framework (lol ...) avec pas mal de classes, mais je suis assez satisfait (non sans mal) de la répartition des responsabilités. Par contre c'est HS par rapport au sujet, mais quelle alternative puis-je avoir à l'autoload pour qu'il évite de me mettre une page blanche lors d'un Parse Error dans une de mes classes (en dev c'est quand même pas pratique, je suis en plus obligé d'enlever le .htaccess protégeant mes classes et d'appeler classe par classe pour voir l'erreur ... souvent un oubli de parenthèse ^^).
C'est loadXML qui plante si la syntaxe n'est pas bonne mais pas loadHTM.Ah oui ? J'ai toujours cru que le parseur DOM plantait si le document XML n'était pas syntaxiquement correct, tu en es sur ?DOMDocument suffis, il peut même réparé ta source.
montre comment tu faisIl y a pourtant un soucis. En plus, j'ai dit une bêtise : les deux applications sont touchées (en fait j'avais regardé la page de l'une à un moment où elle n'est pas manipulée =D> )
new Document ('<html><head>....</html>');
class Document {
function __construct ($code) {
if (substr(trim($code),0,9) != '<!DOCTYPE') $code = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">" . $code;
$document = $this->document = new DOMDocument();
$document->loadHTML($code);
echo $document->saveHTML();
}
}new Document ("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">
<html>
<head>
<title>CouCou</title>
</head>
<body>
<form>
<p>
<label for=\"coucou\">Exemple</label> <input type=\"text\" value=\"\" name=\"coucou\" id=\"coucou\" />
</p>
</form>
</body>
</html>
");
et le code qui sort :<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head><title>CouCou</title></head>
<body>
<form>
<p>
<label for="coucou">Exemple</label> <input type="text" value="" name="coucou" id="coucou"></p>
</form>
</body>
</html>
En dehors du fait qu'il m'a réindenté le texte... c'est le input qui me gène. Et en plus, il me change mes selected="selected" en simple selected.