arquivo não abrir usando PHP fopen
Pergunta
Eu tentei isso:
<?php
$fileip = fopen("test.txt","r");
?>
este deveria ter aberto o arquivo em leitura única humor, mas isso não acontece o arquivo test.txt está na mesma pasta como a de index.php (pasta do projeto principal)
O arquivo não abre
e quando eu coloco echo como:
echo $fileip;
retornou
Resource id # 3
Solução
O arquivo fez muito bem aberta, você não pode repetir-lo assim porque é um ponteiro de arquivo, não o conteúdo do arquivo em si. Você precisa usar fread()
para ler o conteúdo real, ou melhor ainda, o uso file_get_contents()
a obter o conteúdo imediatamente.
Fazendo do seu jeito:
$handle = fopen("test.txt", "r");
$fileip = fread($handle, filesize($filename));
fclose($handle);
echo $fileip;
Ou, usando file_get_contents()
:
$fileip = file_get_contents("test.txt");
echo $fileip;
Outras dicas
De php.net:
Retorna um recurso de ponteiro arquivo em sucesso, ou FALSE em erro.
Uma vez que um resource
foi devolvido, o arquivo foi aberto com sucesso, você precisa de outras operações, tais como fwrite
, etc em seu arquivo. Portanto, não há erro, o arquivo está lá para ser manipulada .
Se você receber um ID de recurso como resultado da chamada fopen, então ele conseguiu, porque ele irá retornar FALSE se ele falhar. Então, o que exatamente faz você duvidar de que o arquivo está realmente aberto?
Verifique http://www.php.net/fopen para obter mais informações.
Você só abriu um identificador de arquivo, não o próprio arquivo.
Se você estiver usando PHP5 -. Que você realmente deve ser para um novo desenvolvimento, você poderia passar a usar $ fileip = file_get_contents ( "test.txt") que irá ler o conteúdo deste arquivo para o buffer
Um exemplo completo.
<?php
$fileip = file_get_contents("test.txt");
echo($fileip);
?>
Para saída o conteúdo do arquivo de texto:
$fh = fopen('myfile.txt', 'r');
$text = fread($fh, filesize('myfile.txt'));
echo $text;