2012-10-05 14 views
5

De acuerdo con fopen documentation, en algunos modos creará el archivo si no existe, pero en mi situación, he comprobado todo 'w', 'w +', 'x 'y' x + 'pero me lanza advertencias y no puede crear el archivo.PHP fopen() no crea un archivo

Es mi código:

$this->handle = fopen($this->log_name, 'w'); 

y lo que me sale:

Warning: fopen(D:\xampp\htdocs\farid\logs\error.php) [function.fopen]: failed to open stream: No such file or directory in D:\xampp\htdocs\farid\libraries\error\log.php on line 34 
Warning: fwrite() expects parameter 1 to be resource, boolean given in D:\xampp\htdocs\farid\libraries\error\log.php on line 66 
Warning: fclose() expects parameter 1 to be resource, boolean given in D:\xampp\htdocs\farid\libraries\error\log.php on line 27 

y estoy trabajando en el entorno de ventanas.

+2

¿Existen esos directorios? – aynber

+2

Permisos de archivos es el sospechoso más obvio –

+1

De la misma documentación: "Si PHP ha decidido que el nombre de archivo especifica un archivo local, entonces intentará abrir una secuencia en ese archivo. El archivo debe ser accesible para PHP, por lo que necesita asegúrese de que los permisos de acceso a archivos permitan este acceso. Si habilitó el modo seguro, o open_basedir pueden aplicarse restricciones adicionales ". –

Respuesta

9

Compruebe si existe la ruta de acceso al archivo de registro, crea un archivo, no un directorio.

También verifique si el usuario, que ejecuta xampp, tiene acceso a la carpeta que ha especificado.

+0

Gracias por su ayuda, hubo un error en mi nombre de directorio. ahora está creando un archivo. ¿Hay alguna manera, así que incluso creo la carpeta si no existía en mi fuunction? –

+1

revisa http://php.net/manual/en/function.mkdir.php revisa la sección de argumentos busca "recursivo", primero tienes que verificar si el archivo existe, 'realpath' yy' file_exists' podrían ser servicial –