2010-03-18 16 views
15

estoy usando fopen para leer desde un archivode error detallada sobre fopen

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

Ahora me sale error contantly no pudo abrir el archivo. Comprobé la ruta del archivo e incluso cambié los permisos del archivo a 777. ¿Hay alguna manera de obtener un informe de error detallado como por qué el archivo no se puede abrir de forma similar a mysql_error()?

Respuesta

24

Active los informes de errores o, en un entorno de producción (desde PHP 5.2.0 en adelante), también debería poder usar error_get_last().

+0

oh, entra \ _Last \ _error() ... eso es mejor que $ php \ _errormsg. Borrando mi respuesta a favor de esta función. – VolkerK

+2

No es necesario borrarlo. ¡Él puede estar en un proyecto (como lo estoy actualmente) que tiene solo 5.1! – webbiedave

+0

convencidos ...... – VolkerK

3

Sí.
PHP tiene un mensaje de error detallado para usted.
Solo tienes que activarlo.

Para Dislay en la pantalla de añadir estas 2 líneas en la parte superior de la secuencia de comandos:

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

O si desea que se registra en cambio,

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

También tenga en cuenta que el uso de la matriz() es una muy mala práctica.

12

Para las versiones de php anteriores a 5.2 (sin error_get_last()) puede usar track_errors.

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

ver también: http://de.php.net/reserved.variables.phperrormsg

+1

+1 pre 5.2 instalaciones aún existen. ¡Bien, no sabía esto! –

+1

+1 nuevamente - no sabía acerca de los track_errors ini var, eso es útil :-) – richsage

0
$fh = fopen($path, 'r') or die (error_get_last()); 
Cuestiones relacionadas