Afficher seulement le detail d'une erreur [Résolu]

Messages postés
91
Date d'inscription
mercredi 26 janvier 2005
Statut
Membre
Dernière intervention
16 septembre 2010
- - Dernière réponse : 3xodius55
Messages postés
91
Date d'inscription
mercredi 26 janvier 2005
Statut
Membre
Dernière intervention
16 septembre 2010
- 16 juin 2006 à 11:23
Bonjour,

Voilà le problème : je voudrai pouvoir afficher à l'ecran la cause d'une erreur sans son type, ni fichier concerné et numéro de ligne.

Voici un exemple :
Warning: DOMDocument::validate() [function.validate]: No declaration for element salut in C:\wamp\www\testXML\index.php on line 13
et je voudrai récupérer :
No declaration for element salut

Tout d'abord est-ce possible ?

Si oui, comment faire ? (ou quelles indications pourriez-vous me donner)

Merci d'avance !
 
Afficher la suite 

4 réponses

Meilleure réponse
Messages postés
91
Date d'inscription
mercredi 26 janvier 2005
Statut
Membre
Dernière intervention
16 septembre 2010
3
Merci
Bonjour,

Tout d'abord merci de vos réponses ! C'est en cherchant dans la doc PHP sur DOMDocument->validate() que j'ai trouvé la méthode correspondant à mes besoins. voici la source (http://fr.php.net/manual/fr/function.dom-domdocument-validate.php):
<?php
function staticerror($errno, $errstr, $errfile, $errline, $errcontext, $ret = false)
{
   static $errs = array();

   if ($ret === true) {
        return $errs;
   }

   // suppression du texte $tag dans $errstr
   $tag = 'DOMDocument::validate(): ';
   $errs[] = str_replace($tag, '',$errstr);

}

// Load a document
$dom = new DOMDocument;
$dom->load('notre_xml.xml');

// gestion des erreurs affectées à la fonction staticerror
set_error_handler('staticerror');
// Desactive les balises HTML dans les messages d'erreurs.
$old = ini_set('html_errors', false);

// Validate
$dom->validate();

// Restore error handling
ini_set('html_errors', $old);
restore_error_handler();

// Get errors
$errs = staticerror(null, null, null, null, null, true);
for($i=0;$i<count($errs);$i++){
    echo $errs[$i].'
';
}

   ?>

En espérant que ça pourra aider quelqu'un !

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 207 internautes nous ont dit merci ce mois-ci

Commenter la réponse de 3xodius55
Messages postés
1406
Date d'inscription
mercredi 17 août 2005
Statut
Membre
Dernière intervention
28 août 2007
6
0
Merci
Salut,

Tu peux créer ta propre gestion des erreurs grace à la fonction set_error_handler();

Regarde les exemples

A+
Commenter la réponse de J_G
Messages postés
10843
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
17
0
Merci
Hello,

ça mérite une pub ça!!
http://www.phpcs.com/codes/PHP5-PHP-DEBUGGER-HELPER_38091.aspx
Analyse mon code, il se sert justement de la gestion des erreurs personnalisée.
Bon il ne fait pas tout à fait ce que tu veux, mais il montre en tous cas que c'est possible.
Et set_error_handler () est très facile à utiliser.
Commenter la réponse de malalam
Messages postés
1406
Date d'inscription
mercredi 17 août 2005
Statut
Membre
Dernière intervention
28 août 2007
6
0
Merci
Ah bah oui ! Bien sûr...

Bonjour malalam. J'aivais pas pensé à ta source. La pub est largement méritée...
Commenter la réponse de J_G