Bonjour à tous,

Je viens d'etre embauché dans une société et je dois débugger un démon PHP qui plante une foie sur deux

Après des jours de recherches, il semblerais que l'erreur se produise au niveau du parsage d'un flux XML. Mais je n'arrive pas à comprendre l'erreur .

Voici le code suspect en question :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
function openFlag($parser,$name,$attrs){					// function gérant les balises ouvrantes du flux XML
				global $msgs,$errors,$stream_treated;
				if($name=="stream_treated"){
					$stream_treated 			= $attrs['status'];
				}
				elseif($name=='error'){
					$pNum 						= $attrs['phonenumber'];
					$pNum 						= ereg_replace("^\+33","33",$pNum);
					$errors[$pNum] 				= $attrs['desc'];
				}
				elseif($name=='mt'){
					$pNum 						= $attrs['phonenumber'];
					$pNum 						= ereg_replace("^\+33","33",$pNum);
					$msgs[$pNum]['ID_Broker'] 	= $attrs['id'];
					//@mail("t@msinnovations.com","On parse l'id broker","On parse l'id broker attrs['id']: ".$attrs['id']." dans msgs[pNum]['ID_Broker']:".$msgs[$pNum]['ID_Broker']); 
				}
			}
			function closeFlag($parser, $name){							// function gérant les balises fermantes du flux XML
			}
			function textFlag($parser, $data_text){ 					// function gérant le contenu de balises du flux XML
			}
			function defaut(){											// function gérant les exceptions du parsage
				return TRUE; 
			}
 
			global $stream_treated;
			$xml_parser = xml_parser_create();							//initialisation du parser
			xml_set_element_handler($xml_parser,"openFlag","closeFlag");//definition des fonctions d'analyse des balises
			xml_set_character_data_handler($xml_parser,"textFlag");		//definition de la fonction de recuperation du contenu des balises
			xml_set_default_handler($xml_parser,"defaut");				//definition de la fonction gérant les exceptions
			xml_parser_set_option($xml_parser,1,'UTF-8');				//definitions des parametres du parseur
 
			$fp = tmpfile();											//initialisation d'un fichier temporaire pour stocker le flux retour
			fwrite($fp,$response);										//ecriture du flux dans le fichier temporaire
			fseek($fp, 0);												//deplacement du pointeur au debut du fichier
Ce qui est très louche, c'est que le demon fonctionne (donc cette partie de code) très bien une foie sur deux sans exeption

Si vous voyez des erreurs qui vous sautent aux yeux n'ésitez pas

Merci d'avance