← PHP

Problemas com fopen()

Lida 3026 vezes

Offline

Mac135 
Membro
Mensagens 12 Gostos 0
Feedback -1

Troféus totais: 19
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Level 4 Level 3 Level 2 Level 1 10 Posts First Post Signature

Boas
Estou a tentar abrir um mesmo ficheiro duas vezes com o fopen, acontece que na 1ª vez corre o ficheiro normalmente, na 2ª vez não interpreta os dados do ficheiro, sera por estar a usar 2 vezes o fopen com o mesmo ficheiro?

 :obrigado:
Offline

Pedro Lopes 
Beta tester
Mensagens 3568 Gostos 18
Feedback +6

Troféus totais: 32
Trófeus: (Ver todos)
Level 6 Windows User Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 5 Level 4 Level 3

Podes mostrar o código que estás a utilizar?
Offline

anjo2 
Membro
Mensagens 3020 Gostos 0
Troféus totais: 31
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2

Não sei se já leste o manual do fopen, quando fazes open, tens de fazer no fim close, se fizeres fopen e depois não fizeres fizeres fclose e fizeres entretanto fopen desse ficheiro, pode não funcionar.
Offline

fabiomigas 
Membro
Mensagens 148 Gostos 6
Troféus totais: 20
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Level 4 Level 3 Level 2 Level 1 100 Posts 50 Posts 10 Posts

o fopen funciona assim:
Código: (php) [Seleccione]

$nome_ficheiro = "teste.txt";
$texto "Olá mundo";
$ficheiro = fopen($nome_ficheiro, "w+"); // abre o ficheiro ou cria se não existir
fwrite($ficheiro, $texto); // escreve o conteudo do $texto no ficheiro
fclose($ficheiro);  // fecha o ficheiro para poupar recursos.

echo file_get_contents($nome_ficheiro); // mostra o conteudo


tem as seguintes flags:

r = ler
r+ ler e escrever
w = escreve
w+ le e escreve e cria ficheiro se não existir
a+ escreve e nao apaga o conteudo existente
Offline

fabiomigas 
Membro
Mensagens 148 Gostos 6
Troféus totais: 20
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Level 4 Level 3 Level 2 Level 1 100 Posts 50 Posts 10 Posts

ah esqueci me de por uma cena. se quiseres que seja adicionada uma linha nova tens de por:
Código: (php) [Seleccione]

$texto =  "O meu texto \r\n"; //O r é para se o servidor for windows em linux a nova linha é n.

str_replace("\r\n", "<br>", file_get_contents($nome_ficheiro)); // assim ao mostrar vai te dar a quebra de linha


Offline

anjo2 
Membro
Mensagens 3020 Gostos 0
Troféus totais: 31
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2

É curioso teres usado fwrite e file_get_contents, o mais correcto agora é não usar fopen mas apenas file_get_contents e file_put_contents
Offline

fabiomigas 
Membro
Mensagens 148 Gostos 6
Troféus totais: 20
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Level 4 Level 3 Level 2 Level 1 100 Posts 50 Posts 10 Posts

É curioso teres usado fwrite e file_get_contents, o mais correcto agora é não usar fopen mas apenas file_get_contents e file_put_contents

pois mas o que ele quer é ajuda com fopen se não faria assim como dizes é menos linhas :)

punha assim:
Código: (php) [Seleccione]

$nome_ficheiro = "teste.txt";
file_put_contents($nome_ficheiro, "teste\r\n", FILE_APPEND);
echo str_replace("\r\n", "<br>", file_get_contents($nome_ficheiro));