Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Cristiano A. Franco

Como capturar o ENTER do teclado

Recommended Posts

Pessoal tenho um bd em .txt.ao dar enter no textarea ele quebra a linha dentro do .txt tb, consequentemente, quando vou recuperar os valores e exibir, o ponteiro entende q a quebra de linha é um novo elemento de array e dá a informação onde não deveria.Eu quero conservar a formatão do textarea quando for exibir a msg sem q o arquivo .txt sofra quebras de linha.Tenho q caputrar a tecla ENTER de alguma maneira, mas tem outro probleminha, se alguem for falar pra substituir por <br> esqueça pq to usando htmlentities.Alguem sabe resolver esse problemão? :wacko:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Douglas você não me entendeu... o problema é q estou usando htmlentities na hora de inserir os valores... ou seja, ele transforma o <br>, logo não osso usar ln2brENTER do teclado imprime \n no arquivo .txt?É um dilema isso, nunca pensei q fosse tão complicado. :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ué, você pode usar o htmlentities e depois usar o nl2br tranquilamente, assim a única formatação vai ser o <br>, os outros vão ficar assim por exemplo, <b> ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou pegando dados de um FORM, um deles um TEXAREA e estou gravando os dados desse FORM num arquivo texto, mas gostaria de gravar todos os campos em uma linha apenas do TXT, mas qdo o usuario dá um enter no TEXTAREA a quebra de linha é gravada tb no TXT, como faço pro usuario digitar qtos enter ele quiser no form e não gravar como quebra de linha no arquivo TXT?Olhem o código q grava no arquivo.txt

<?############### ESCREVENDO NO BLOG ###############$arquivo_blog = "blog.txt";if (empty($_POST["txtnome"]) and empty($_POST["txtemail"]) and empty($_POST["txtmensagem"])) {$msg = "Campos vazios.";}else {$barra1 = "#";$barra2 = "número";$nome = str_replace($barra1, $barra2, $_POST["txtnome"]);$email = str_replace($barra1, $barra2, $_POST["txtemail"]);$mensagem = str_replace($barra1, $barra2, $_POST["txtmensagem"]);$data_atual = date("d.m.y - H:i:s");$conteudo_blog = htmlentities($nome)."#".htmlentities($email)."#".htmlentities($mensagem)."#".$data_atual;if (!$abrir_blog = fopen($arquivo_blog, "a")) {$msg = "Erro ao tentar acessar os dados.";exit;}if (!fwrite($abrir_blog, "$conteudo_blog\r\n")) {$msg = "Erro ao tentar gravar os dados.";exit;}fclose($abrir_blog);$msg = "Mensagem enviada<br>com sucesso.";}#---- escolhendo a imagem aleatória$imagens = array("1.jpg", "2.jpg", "3.jpg", "4.jpg", "6.jpg", "7.jpg", "8.jpg", "9.jpg", "10.jpg", "11.jpg", "12.jpg"); $total = count($imagens);$img_escolhida = $imagens[mt_rand(0, ($total - 1))];?>

Peço q testem esse código e arrumem ele, eu preciso com certa urgencia.Obrigado a todos q me responderam. http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

voce vai fazer assim, cara:Você vai usar o str_replace pra substituir o ENTER por /n...creio que um ENTER numa TEXTAREA é igual a dois espaços num TXT...eu ainda nao peguei o motivo, mas sempre acontece isso... eu resolvi isso assim:Ao invés de gravar os dados em arquivos TXT, que, por sinal, têm tamanhos máximos, eu to gravando em arquivos PHP mesmo...eu faço a formatação de uma forma que ele insere no php os dados desse jeito:<?$data[1] = "28/07/2003";$nome[1] = "klawdyo";$mensagem[1] = "Olha só que bunitxinho!!";?>tá ligado?Aí, na hora da inserção, eu só dou o include, que as variáveis já estão prontas pra usar...bem, é uma sugestão, recentemente, eu substitui todo os dados de Banco de Dados em mysql por arquivos php dessa forma...é mais difícil de acontecer erros e de você perder todos os seus dados por causa de um erro na tabela...como eu já vi inúmeras vezes... cada arquivo conteria os dados de uma linha...e a pasta completa seria a tabela...Quer que eu diga outra vantagem desse método em relação aos arquivos de texto?SE você digitar o endereço deles no navegador, voccê não ver nada, pois só existem as variáveis, agora faça isso com um arquivo texto...aparece tudo que voce quer, e o que num quer tambémheheheheheheheheaparece até foto sua tomando banho pelado com um ano de idadeuahuhauahauahuahauahauhauaha

Compartilhar este post


Link para o post
Compartilhar em outros sites

Jóia Klawdio, boa dica.Vou tentar implementar.A dúvida principal mesmo e q eu não sabia era q um ENTER no textárea equivale por 2 espaços num .txt, bom, se isso reaslmente acontece (vou ver daqui a pouco) é só usar algo como:

str_replace("  ", "'\n'", $variável);

Acho q deve funcionar.Só fiquei em dúvida quanto a performance ao suar arquivos .php pra armazenar dados, em vez de arquivos .txt.O servidor precisa interpretar os arquivos .php antes de exibi-los, e se um bd .php tiver já com muitos registros, não vou ter perda de performance se comparado a um bd .txt?Um abraço, fica com Deus. http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na verdade não são dois espaços, é um espaço e um \n, pra você colocar quebra de linha num arquivo txt você usa o \n, como ele já vem do form, então você deve tira-lo usando str_replace, str_replace("\n","\\n",$file), assim não vai haver quebra de linha no txt, e na hora de pegar você faz o contrário: str_replace("\\n","\n",$file) ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na verdade não são dois espaços, é um espaço e um \n, pra você colocar quebra de linha num arquivo txt você usa o \n, como ele já vem do form, então você deve tira-lo usando str_replace, str_replace("\n","\\n",$file), assim não vai haver quebra de linha no txt, e na hora de pegar você faz o contrário: str_replace("\\n","\n",$file)  ;)

Prescot eu fiz assim e finalmente funcionou (antes de inserir os dados no .txt):
$barra1 = array("#", "\r\n");$barra2 = array("número", "<br>");$mensagem = str_replace($barra1, $barra2, $_POST["txtmensagem"]);
Tá doido... apanhei q só um condenado disso... mas finalmente consegui, vlw a todos q me ajudaram. http://forum.imasters.com.br/public/style_emoticons/default/clap.gif Agora preciso de ajuda nesse tópico.desculpem torrar a paciência gente, mas newba sofre...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.