web-dev-qa-db-fra.com

Erreur détaillée sur fopen

J'utilise fopen pour lire à partir d'un fichier

$fh = fopen($path, 'r') or die('Could not open file');

Maintenant, j'obtiens toujours une erreur Impossible d'ouvrir le fichier. J'ai vérifié le chemin du fichier et même changé les permissions du fichier en 777. Est-il possible d'obtenir un rapport d'erreur détaillé expliquant pourquoi le fichier ne peut pas être ouvert comme mysql_error ()?

22
Elitmiar

Activez le rapport d'erreurs ou, dans un environnement de production (à partir de PHP 5.2.0), vous devriez également pouvoir utiliser error_get_last() .

34
Pekka

Pour les versions de php antérieures à la version 5.2 (sans erreur_get_last ()), vous pouvez utiliser track_errors .

ini_set('track_errors', 1);
$fh = fopen('lalala', 'r');
if ( !$fh ) {
  echo 'fopen failed. reason: ', $php_errormsg;
}

voir aussi: http://de.php.net/reserved.variables.phperrormsg

14
VolkerK

Oui.
PHP a un message d'erreur détaillé pour vous.
Il vous suffit de l'activer.

Pour l'afficher à l'écran ajoutez ces 2 lignes en haut du script:

ini_set('display_errors',1);
error_reporting(E_ALL);

Ou si vous souhaitez qu'il soit enregistré à la place,

ini_set('log_errors',1);
ini_set('display_errors',0);
error_reporting(E_ALL);

Notez également que l'utilisation de die () est une très mauvaise pratique.

6
Your Common Sense
$fh = fopen($path, 'r') or  die (error_get_last());
1
user4796734