Ir ao conteúdo
  • Cadastre-se

Como iniciar um php que grave arquivos? formulário


Posts recomendados

  • Moderador

@Ebsturbius Olá, poderia explicar melhor o que você quer fazer?

 

Se possível poste a sua tentativa de como tentou fazer o algoritmo.

Por enquanto só vou dar algumas dicas. 

Use as funções fopen(), fwrite(), fclose(), chop() que é o mesmo que rtrim() usada para retirar o último caractere, fgets() que retorna uma linha do ponteiro do arquivo.

 

Basicamente você cria um contador.php que gera o contador.. e outro visualizar.php que abre o arquivo e imprime em tela o conteúdo.

 

Assim não tem controle. Sempre que der um F5 vai contar +1.  O ideal seria você usar um banco de dados e registrar por IP! 

Link para o comentário
Compartilhar em outros sites

59 minutos atrás, DiF disse:

@Ebsturbius Olá, poderia explicar melhor o que você quer fazer?

 

Se possível poste a sua tentativa de como tentou fazer o algoritmo.

Por enquanto só vou dar algumas dicas. 

Use as funções fopen(), fwrite(), fclose(), chop() que é o mesmo que rtrim() usada para retirar o último caractere, fgets() que retorna uma linha do ponteiro do arquivo.

 

Basicamente você cria um contador.php que gera o contador.. e outro visualizar.php que abre o arquivo e imprime em tela o conteúdo.

 

Assim não tem controle. Sempre que der um F5 vai contar +1.  O ideal seria você usar um banco de dados e registrar por IP! 

Terrível nem se quer montei esse código, eu fiz foi uns links em PHP, mais o principal é o formulário para atualizar o site o contador eu posso deixar ruim assim mesmo.

 

if (isset ($_POST["azul"])) { 
  print "<link rel=\"stylesheet\" href=\"imgs/alfa/azul/cor.css\" type=\"text/css\" />"; 
}

bom usei PHP como link, e copiei um mural e um contador de outro autor.

 

Cópia do contador mais consegui descrever as ações... Complicadinho não decorei nem acostumei

<?php
$al=fopen("contador.dat","r"); // Abrir arquivo em modo leitura "fopen"(File Open) parametro "R" Read

$contar=fgets($al,1024); // Faz leitura da primeira linha do arquivo "fget"(File Get) parametro "Lenght(1024)" 1024bytes no máximo teoricamente 1 linha.
fclose($al);  // Fechar o arquivo que foi aberto por "$al" e lido por "$contar" usando "fclose"
// Fim da leitura, o arquivo foi verificado
// Começo da gravação

// Abrir novamente em modo gravação "fopen"(File Open) parametro "W" Write prepara o arquivo para escrita.
$ae=fopen("contador.dat","w");  

// Aqui é acrescentado +1 ao valor obtido pela váriavel $contar(que fez a leitura do arquivo)
$contagem=$contar+1; 

// Aqui é feita a gravação do resultado da soma de +1 que foi feito pela variavel "$contagem" ao valor obtido por "$contar", usando o comando "fputs = fwrite" faz escrita no arquivo no arquivo em modo binário.
$contanova=fputs($ae,$contar+1);  

fclose($ae); // Fecha o arquivo novamente "fclose" fim da contagem, arquivo gravado.
// Começo do script que exibe o resultado em forma de imagens usando o comando "str_replace" substitui um valor por algum objeto ou outro valor. Por exemplo o valor 1 do resultado da contagem pode ser atribuido a uma imagem ou outro valor. Pelo visto trabalhando em valores naturais onde 111 seria igual a três valores substituidos e não "Centro e Onze" o que deixaria o valor sem retorno.                

$visitas=$contagem; // variável com o número de visitas atribuida ao fim da contagem no começo do script
// Substituição de valores por imagem, levando em conta o caracter exato.
$visitas=str_replace('0','<img src="imgs/contador/0.gif">',$visitas);
$visitas=str_replace('1','<img src="imgs/contador/1.gif">',$visitas);
$visitas=str_replace('2','<img src="imgs/contador/2.gif">',$visitas);
$visitas=str_replace('3','<img src="imgs/contador/3.gif">',$visitas);
$visitas=str_replace('4','<img src="imgs/contador/4.gif">',$visitas);
$visitas=str_replace('5','<img src="imgs/contador/5.gif">',$visitas);
$visitas=str_replace('6','<img src="imgs/contador/6.gif">',$visitas);
$visitas=str_replace('7','<img src="imgs/contador/7.gif">',$visitas);
$visitas=str_replace('8','<img src="imgs/contador/8.gif">',$visitas);
$visitas=str_replace('9','<img src="imgs/contador/9.gif">',$visitas);
echo $visitas; //imprime o numero de visitas formado por imagens, Pro seu contador não ficar com um número só, pequeno, acrescente zeros a esquerda, no arquivo contador.bat.
 echo "$contagem"; //(Para não exibir o esquema de imagens, com esse comando será exibido somente o número inteiro)
?>

 

Link para o comentário
Compartilhar em outros sites

  • Moderador
59 minutos atrás, Ebsturbius disse:

Terrível nem se quer montei esse código, eu fiz foi uns links em PHP, mais o principal é o formulário para atualizar o site o contador eu posso deixar ruim assim mesmo.

Ainda fico sem entender. Porque a necessidade do formulário para atualizar o contador?

 

Um dos principais erros é quando se copia e cola da internet sem saber. Recomendo primeiramente criar um contador de visitas simples usando números e gravando em um arquivo txt. Depois disso, você implementa a substituição de números por imagens de números. 

 

 

O contador de visitas, não precisa de um formulário para atualizar. Basta que se crie um arquivo para gerar o contador e incluir no seu index.php e criar um visualizador e também acrescentar em seu index.php.

 

Eis um exemplo BEM simples de um contador com números gravando em um txt.

Contador.php

//armazena um arquivo txt na variável
$arquivo = "contador.txt";

//escreve no arquivo, retiranto o último caractere retornando a linha do ponteiro.
$contador= chop(fgets($fd, 4096)); 

/*soma +1 ao contador. ou seja, começando em zero, 
        no próximo refresh ficará 1 e assim por diante
        mesma coisa que $contador = $contador + 1;
*/
$contador++;

// abre o arquivo em modo de write
$gravar = fopen ($arquivo, w”); 

//grava de fato onde $gravar é o arquivo e o $contador é o valor do contador
fwrite($gravar, $contador);

// fecha o arquivo
fclose ($gravar); 

É bem mais simples. Com isso você tem o arquivo que gera o contador e grava o valor no TXT.

 

Agora para mostrar no site, você cria um novo arquivo chamado visualizador.php e inclui com include no index.php

//armzena na variável o arquivo.
$arquivo = "contador.txt";

//abre o arquivo em modo leitura
$contador = fopen ($arquivo, r”);

//retira o ultimo caractere e retorna a linha do ponteiro do arquivo, ou seja, o valor da linha
$visitas = chop(fgets($contador, 4096));

//fecha o arquivo
fclose ($contador);

//printa em tela o valor do arquivo
echo "Atualmente " . $visitas . " visitaram o site!";

Basicamente é isso. Tente fazer assim primeiro, depois mostro como substituir os números por imagens.

 

 

Link para o comentário
Compartilhar em outros sites

  • Moderador

@Ebsturbius

1 hora atrás, Ebsturbius disse:

Formulário para atualizar o site, sem precisar de programas, notícias, foto, figura, data etc...

E como iria por os dados? Recomendo que use o um banco de dados MySQL por exemplo, todos os sites que guardam dados assim usam um banco de dados e não um arquivo. Aí você imagina o tamanho do arquivo  depois de algumas centenas de linhas. Não é viável usar um arquivo txt ou "dat" para isso.

Com o contador e livro de visita é a mesma coisa, use o banco de dados para guardar as mensagens e a quantidade de pessoas.

 

Imagina a seguinte analogia, para o jeito que está tentando fazer:

Se o código e o arquivo de texto fossem carros ele seria uma fusca.  

 

Com o banco de dados, sistema administrativo (CRUD) seriam um batmóvel.

É mais ou menos isso, usando banco de dados e um CRUD simples(create, read, update, delete) você ganha desempenho, otimiza seu sistema para um  alto volume de dados.. e etc.

 

 

Link para o comentário
Compartilhar em outros sites

6 minutos atrás, DiF disse:

@Ebsturbius

E como iria por os dados? Recomendo que use o um banco de dados MySQL por exemplo, todos os sites que guardam dados assim usam um banco de dados e não um arquivo. Aí você imagina o tamanho do arquivo  depois de algumas centenas de linhas. Não é viável usar um arquivo txt ou "dat" para isso.

Com o contador e livro de visita é a mesma coisa, use o banco de dados para guardar as mensagens e a quantidade de pessoas.

 

Imagina a seguinte analogia, para o jeito que está tentando fazer:

Se o código e o arquivo de texto fossem carros ele seria uma fusca.  

 

Com o banco de dados, sistema administrativo (CRUD) seriam um batmóvel.

É mais ou menos isso, usando banco de dados e um CRUD simples(create, read, update, delete) você ganha desempenho, otimiza seu sistema para um  alto volume de dados.. e etc.

 

 

Corretamente já imaginei isso, acontece que estou querendo um recurso básico apenas de regravar(atualizar) um arquivo HTML via PHP facilitado por formulário. Não vou chegar a acessos maiores que mil. Se não me engano esse recurso estaria disponível em java(mais difícil ainda)

Link para o comentário
Compartilhar em outros sites

  • Moderador

@Ebsturbius

Que tipo de dados você gravar e regravar? As vezes "recursos" básicos não são a melhor opção...

Gravar e ler em um arquivo só é usado para coisas extremamente pequenas. Por exemplo o contador de visitas numéricos. aí tudo bem, mas melhor ainda se usar o banco de dados registrado por IP, assim você registra apenas 1 pessoa de fato e não todas as vezes que atualizar com "F5".

 

O livro de visitas é melhor e MUITO recomendado usar o banco de dados. Pois em arquivo há chaces de corrompimento do mesmo.. eaí você perde tudo que já tinha gravado.

 

Vai por mim, experiência própria. Dedique-se um pouquinho mais e use o banco de dados.. você faz isso só com algumas linhas de comando.

 

20 minutos atrás, Ebsturbius disse:

acontece que estou querendo um recurso básico apenas de regravar(atualizar) um arquivo HTML via PHP facilitado por formulário.

Se o seu objetivo é armazenar muito texto, imagens, links e etc  não perca seu tempo nisso.

 

Outra sugestão é você usar um CMS já pronto. wordpress, joomla  por exemplo. Bastando só configurar além disso o wordpress possui centenas de plugins instalaveis para livro de visitas.. contadores... você nem precisaria programar de fato.

 

 

Link para o comentário
Compartilhar em outros sites

Valeu mesmo mano, mais o negócio é básico mesmo que estou precisando provavelmente não irei evoluir ao ponto de usar Banco de Dados com datas, relógio etc um código para escrever em arquivos HTML usando PHP para que possa atualizar o site propriamente online sem ter que usar o programa de edição.

Link para o comentário
Compartilhar em outros sites

  • Moderador

@Ebsturbius Olha.. tentei entender o que quer... mas  não consigo. 

2 horas atrás, Ebsturbius disse:

um código para escrever em arquivos HTML usando PHP para que possa atualizar o site propriamente online sem ter que usar o programa de edição.

Se existisse algo assim, ninguém mais usaria banco de dados.

Com HTML 5 é possivel usar web stores, mas não é para esta finalidade. ele é  mais um substituto dos cookies.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...