il file non si apre con PHP fopen
Domanda
Ho provato questo:
<?php
$fileip = fopen("test.txt","r");
?>
questo avrebbe dovuto aprire il file in sola lettura umore ma non è così il file test.txt è nella stessa cartella di quella di index.php (cartella principale del progetto)
il file non si apre
e quando ho messo eco come:
echo $fileip;
è tornato
Resource id # 3
Soluzione
ha aperto bene il file, non è possibile eco in quel modo perché è un puntatore a file, non il contenuto del file stesso. È necessario utilizzare fread()
per leggere il contenuto effettivo, o meglio ancora, utilizzare il file_get_contents()
ottenere il contenuto immediatamente.
In questo modo tuo:
$handle = fopen("test.txt", "r");
$fileip = fread($handle, filesize($filename));
fclose($handle);
echo $fileip;
In alternativa, utilizzando file_get_contents()
:
$fileip = file_get_contents("test.txt");
echo $fileip;
Altri suggerimenti
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 v'è alcun errore, il file è lì per essere manipolato .
Se si ottiene un ID di risorsa come risultato della chiamata fopen, poi è riuscito, perché restituirà FALSE se fallisce. Quindi, ciò che rende esattamente dubitare che il file è effettivamente aperto?
http://www.php.net/fopen per ulteriori informazioni.
Hai aperto solo un handle di file, non il file stesso.
Se si sta utilizzando PHP5 -., Che si dovrebbe essere per un nuovo sviluppo, si potrebbe invece utilizzare $ fileip = file_get_contents ( "test.txt"), che leggerà il contenuto di questo file nel buffer
Un esempio completo.
<?php
$fileip = file_get_contents("test.txt");
echo($fileip);
?>
Per emettere il contenuto del file di testo:
$fh = fopen('myfile.txt', 'r');
$text = fread($fh, filesize('myfile.txt'));
echo $text;