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

Foi útil?

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;
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top