2010-03-09 11 views
8

he intentado esto:archivo no se abre usando PHP fopen

<?php 
$fileip = fopen("test.txt","r"); 

?> 

esto debería haber abierto el archivo en un solo estado de ánimo leer pero no el archivo test.txt está en misma carpeta que ese index.php (carpeta principal del proyecto)

el archivo no se abre

y cuando pongo eco como:

echo $fileip; 

volvió

Resource id # 3

Respuesta

15

El archivo se abrió muy bien, no se puede repetir así porque es un puntero de archivo, no el contenido del archivo en sí. Debe usar fread() para leer los contenidos reales, o mejor aún, use file_get_contents() para obtener el contenido de inmediato.

Hacerlo a tu 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; 
+0

si quiere imprimir los contenidos directamente, no necesita guardarlos primero en una variable, solo use readfile ("test.txt"); – Tobias

+0

@Tobias, o también puede hacer 'echo file_get_contents (...' pero agregué las variables porque OP lo tenía en su pregunta. –

2

De 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. Entonces no hay ningún error, el archivo está allí para ser manipulado.

2

Si obtiene una identificación de recurso como resultado de la llamada fopen, entonces tuvo éxito, porque devolverá FALSE si falla. Entonces, ¿qué es exactamente lo que te hace dudar de que el archivo esté realmente abierto?

Compruebe http://www.php.net/fopen para obtener más información.

2

Solo ha abierto un identificador de archivo, no el archivo en sí.

Si está utilizando PHP5, que en realidad debería ser para un nuevo desarrollo, podría usar $ fileip = file_get_contents ("test.txt") que leerá el contenido de este archivo en el búfer.

0

A la salida del contenido del archivo de texto:

$fh = fopen('myfile.txt', 'r'); 
$text = fread($fh, filesize('myfile.txt')); 
echo $text; 
2

Un ejemplo completo.

<?php 
    $fileip = file_get_contents("test.txt"); 

    echo($fileip); 
?> 
Cuestiones relacionadas