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 }
3 Réponses :
Prendre le @ signe. p>
Le signe @ supprime les messages d'erreur, il s'agit donc de supprimer l'erreur que la fonction donnerait normalement. P>
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:
@ 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)