archivo no se abre usando PHP fopen
Pregunta
He intentado esto:
<?php
$fileip = fopen("test.txt","r");
?>
esto debería haber abierto el archivo en un solo estado de ánimo leer pero no lo hace el archivo test.txt está en misma carpeta que el de index.php (carpeta principal del proyecto)
el archivo no se abre
y cuando pongo eco como:
echo $fileip;
volvió
Resource id # 3
Solución
El archivo se abrió muy bien, no puede hacerse eco de esa manera porque es un puntero a un archivo, no el contenido del propio archivo. Es necesario utilizar fread()
para leer el contenido real, o mejor aún, utilizar el file_get_contents()
obtener el contenido de inmediato.
Si lo hace a su manera:
$handle = fopen("test.txt", "r");
$fileip = fread($handle, filesize($filename));
fclose($handle);
echo $fileip;
O, usando file_get_contents()
:
$fileip = file_get_contents("test.txt");
echo $fileip;
Otros consejos
Desde php.net:
Devuelve un recurso de puntero de archivo en de éxito, o FALSE en caso de error.
Desde que se volvió un resource
, el archivo se ha abierto con éxito, necesita operaciones adicionales tales como fwrite
, etc en su archivo. Así que no hay error, el archivo está ahí para ser manipulado .
Si recibe un identificador de recursos como resultado de la llamada fopen, entonces tuvo éxito, ya que devolverá FALSE si falla. Entonces, ¿qué le hace dudar de que el archivo es en realidad abierta?
http://www.php.net/fopen para más información.
Sólo se ha abierto un identificador de archivo, no el propio archivo.
Si estás usando PHP5 -. Lo que realmente debería ser para un nuevo desarrollo, en su lugar podría utilizar $ fileip = file_get_contents ( "test.txt") que leerá el contenido de este archivo en el búfer
Un ejemplo completo.
<?php
$fileip = file_get_contents("test.txt");
echo($fileip);
?>
A la salida del contenido del archivo de texto:
$fh = fopen('myfile.txt', 'r');
$text = fread($fh, filesize('myfile.txt'));
echo $text;