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

¿Fue útil?

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;
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top