Test sur"list" et "explode"?

Signaler
Messages postés
294
Date d'inscription
jeudi 8 février 2007
Statut
Membre
Dernière intervention
3 décembre 2012
-
Messages postés
962
Date d'inscription
samedi 19 janvier 2002
Statut
Membre
Dernière intervention
2 août 2010
-
salut a tous,

J'ai un script qui traite un fichier .txt, mon problém c k si le fichier ne contient pas les information attendu dans le script il me sort des message d'erreur:

Notice: Undefined offset: 1 in c:\users\el_diablo\desktop\watcher\parse.php on line
65

Notice: Undefined offset: 1 in c:\users\el_diablo\desktop\watcher\parse.php on line
65

Notice: Undefined offset: 1 in c:\users\el_diablo\desktop\watcher\parse.php on line
65

Notice: Undefined offset: 1 in c:\users\el_diablo\desktop\watcher\parse.php on line
65

Notice: Undefined offset: 1 in c:\users\el_diablo\desktop\watcher\parse.php on line
65

Accusés:
336
Erreurs:
0
Moyenne Erreurs: 0%
Début: 12/14/07 15:56:39 - Fin: 12/14/07 15:56:39 - Durée: 0 Minutes

Le script ne bug pas et continue son execution (ca c'est bien) mais se qui me dérange c'est les message d'erreur!! voila la parti qui nous interresse du script :

 
      list ($tiempo, $transcurrido, $equipo_remoto, $codigo_status, $bytes, $metodo, $url, $autenticacion, $peerstatus_peerhost, $tipo) = $registro;
      if (strpos($url, '//') != false)
         list ($proto, $aux, $dir, $dir_arg) = explode ('/', $url, 4);
      else
         list ($dir, $dir_arg) = explode ('/', $url, 4);
      $dir_arg = addslashes ($dir_arg);
      $dir_arg = substr ($dir_arg, 0, 1023);
      list ($codigo, $status) = explode ('/', $codigo_status);
      list ($peerstatus, $peerhost) = explode ('/', $peerstatus_peerhost);
      list ($hora, $mili) = explode ('.', $tiempo);
      $tiempo = date("y/m/d H:i:s", $hora).".$mili";
      list ($tipo1, $tipo2) = explode ('/', $tipo);

Tout se que je veut c'est réaliser un test sur les list et explode pour que ca me sort plus ce genre de message!! un calcule de taux d'erreur aussi!

merci de m'aidé a voir un peu plus claire!!!!

6 réponses

Messages postés
260
Date d'inscription
jeudi 31 mai 2007
Statut
Membre
Dernière intervention
5 novembre 2010
1
Salut !!

C'est moche ce que je vais te dire, mais ajoute des @ devant tes lignes où il peut y avoir des erreurs.
Sinon fait une recherche sur les gestion d'erreur : try { throw new Exception("test") ...

<hr />
lowke<sub>y

WWJD for havin' a nice code ?</sub>
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
Hello,

un code qui se fiche des erreurs s'il peut continuer son exécution malgré tout, cx'est gênant quand même.
Tu as cette erreur parce que tu n'as pas toujours autant de '/' que tu l'attends, donc comme list impose le nombre d'index retournés par explode(), il râle. Ca veut dire aussi que plus loin dans ton code, tu vas utiliser des variables qui n'existent pas.
Alors c'est sûr, le @ va virer les erreurs et tu seras sans doute content. Mais bon...tu ne seras guère plus avancé sur la gestion de ton code au final.
Messages postés
294
Date d'inscription
jeudi 8 février 2007
Statut
Membre
Dernière intervention
3 décembre 2012

Resalut;

Le @ je le met ou? si c'est dans le fichier que je traite bin je pense que c'est pas la solution, puisque le fichier que je traite change réguliérement de contenu....! en faite je l'utilse comme buffer pour traiter d'otre fichier...! sinon ou, je voi pas?
Messages postés
962
Date d'inscription
samedi 19 janvier 2002
Statut
Membre
Dernière intervention
2 août 2010
1
Salut,
le @ tu le mets devant tes commandes list.

-------------------
Vous cherchez un hebergement Php/MySQL Gratuit et sans publicités ??
Et bien c'est la : www.e3b.org  
Messages postés
294
Date d'inscription
jeudi 8 février 2007
Statut
Membre
Dernière intervention
3 décembre 2012

Resalut,


OK, ca marche!!! Le @ resoue mon probléme!! mais j'ai chercher et j'ai pas trouvé sa vrais foncntionnalité, ca fait quoi exactement? ca élimine just les message d'erreur?
Messages postés
962
Date d'inscription
samedi 19 janvier 2002
Statut
Membre
Dernière intervention
2 août 2010
1
Ouais ça sert a éliminé le message d'erreur.

Mais une façon plus propre serait aussi de juste désactivé l'affichage des notice dans ton php.ini puisque ce ne sont pas des erreurs très graves. Ou encore tu peux modifié ton scripts pour geré les exceptions ou les évités

-------------------
Vous cherchez un hebergement Php/MySQL Gratuit et sans publicités ??
Et bien c'est la : www.e3b.org