2010-03-09 15 views
8

Ho provato questo:di file non si apre con PHP fopen

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

?> 

questo avrebbe dovuto aprire il file in sola lettura stato d'animo, ma non il file test.txt è nella stessa cartella che di index.php (cartella principale del progetto)

il file non si apre

e quando ho messo eco come:

echo $fileip; 

è tornato

Resource id # 3

risposta

15

Il file è stato aperto correttamente, non è possibile farlo echeggiare perché è un puntatore di file, non il contenuto del file stesso. È necessario utilizzare fread() per leggere i contenuti effettivi o, meglio ancora, utilizzare file_get_contents() per ottenere immediatamente il contenuto.

Facendo a modo tuo:

$handle = fopen("test.txt", "r"); 
$fileip = fread($handle, filesize($filename)); 
fclose($handle); 

echo $fileip; 

Oppure, utilizzando file_get_contents():

$fileip = file_get_contents("test.txt"); 

echo $fileip; 
+0

se si desidera stampare direttamente il contenuto, non è necessario salvarlo prima in una variabile, basta usare readfile ("test.txt"); – Tobias

+0

@Tobias, o puoi anche solo fare 'echo file_get_contents (...' ma ho aggiunto le variabili perché OP aveva nella sua domanda. –

2

Da php.net:

Restituisce una risorsa puntatore a file su successo, oppure FALSE in caso di errore.

Dal momento che un resource è stato restituito, il file è aperto con successo, avete bisogno di ulteriori operazioni come fwrite, ecc sul vostro file. Quindi non ci sono errori, il file è lì per essere manipolato .

2

Se si ottiene un ID risorsa come risultato della chiamata fopen, è riuscito, poiché restituirà FALSE se fallisce. Quindi, cosa ti fa dubitare che il file sia effettivamente aperto?

Verificare http://www.php.net/fopen per ulteriori informazioni.

2

Hai appena aperto un handle di file, non il file stesso.

Se si utilizza PHP5, che in realtà dovrebbe essere utilizzato per lo sviluppo, è possibile utilizzare $ fileip = file_get_contents ("test.txt") che leggerà il contenuto di questo file nel buffer.

0

Per emettere il contenuto del file di testo:

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

Un esempio completo.

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

    echo($fileip); 
?>