log ini_set info error php file error-handling suphp

ini_set - Obtenga información significativa cuando falla fopen()(PHP/suPHP)



php log error to file (2)

Utilice error_get_last () para detectar los errores (supressed) en php:

$f = @fopen("x", "r") or die(print_r(error_get_last(),true));

¿Cómo obtengo algo más significativo que ''FALSE'' cuando no puedo abrir un archivo?

$myFile = "/home/user/testFile.txt"; $fh = fopen($myFile, ''w'') or die("can''t open file");

Cuando uso la declaración del die , can''t open file se devuelve al cliente, y es casi inútil. Si lo elimino, no se genera ningún error. Si devuelvo $fh , es FALSE . Intenté tanto el nombre de archivo local como el nombre de archivo absoluto. Mi archivo index.html está en una de las subcarpetas de mi carpeta de agujeros. Además, estoy usando suPHP con la carpeta que estoy tratando de escribir para tener un permiso de 0755 (suPHP requiere esto para todas las carpetas).

¿Cómo puedo descubrir por qué hubo un problema o, al menos, consultarlo antes de intentar abrir el archivo?


fopen debería generar un E_WARNING si falla. Ver error_get_last o set_error_handler (*) para atraparlo. Aparte de eso, puede usar file_exists e is_readable para verificar si falta el archivo o si hay otro problema (probablemente relacionado con el permiso).

(*) Considero una buena práctica establecer siempre un controlador de errores que convierta todos los errores de PHP en excepciones.