9
votes

Comment émettre la raison d'un fichier PHP

J'essaie de déboguer un service Web PHP énorme (CIRCA 2001) et je rencontre des défaillances ouvertes de fichier. L'appel Fopen est dans un module inclus, l'appelant consiste à enregistrer que le fichier n'a pas pu être ouvert mais aucune raison n'est enregistrée.

Le code qui est réellement ouvert est le suivant: P>

  // Read the file
  if (!($fp = @fopen($fileName, 'rb'))) {
    $errStr = "Failed to open '{$fileName}' for read.";
    break; // try-block
  }


0 commentaires

3 Réponses :


9
votes

Prendre le @ signe.

Le signe @ supprime les messages d'erreur, il s'agit donc de supprimer l'erreur que la fonction donnerait normalement.


0 commentaires

2
votes

Supprimer le Suppresseur d'erreur .


0 commentaires

1
votes

De grandes réponses ont déjà été données sur le @ Opérateur , mais voici quelques informations supplémentaires qui pourraient être utiles, soit à vous, soit à quelqu'un d'autre:

  • Si, à des fins de débogage, vous avez besoin de désactiver l'opérateur @ code>, vous pouvez installer Extension Scream - Voir aussi Le manuel - em > Ce qui est vraiment utile lorsque vous maintenez une sorte d'application ancienne non bien conçue / codée ^^ li>
  • en fonction de votre configuration PHP (si le pack_errors code> est activé) em>, vous pourrez peut-être utiliser $ php_errormsg code> pour obtenir le dernier message d'erreur. LI> ul>

    Considérant cette pièce de code: P>

    string 'fopen(/tmp/non-existant-file.txt) [<a href='function.fopen'>function.fopen</a>]: failed to open stream: No such file or directory' (length=129)
    
    string 'fopen(/tmp/vboxdrv-Module.symvers) [<a href='function.fopen'>function.fopen</a>]: failed to open stream: Permission denied' (length=122)
    


0 commentaires