Ir para conteúdo

POWERED BY:

Arquivado

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

hvjohny

Tinymce, espaçamento.

Recommended Posts

Boa tarde galera... venho pedir a ajuda de vocês novamente...

Antes de mais nada gostaria de avisar que revirei o pai google e não encontrei nada que me ajudasse.

Bom, estou usando o Tinymce pra inserir texto no banco de dados. Está tudo certo, porém, quando tem a ocorrência de espaço, ele envia como " ", e na ocorrência de uma nova linha, como "<p>".

O problema que não consigo resolver é como fazer pra remover os espaços em branco no início e no fim da string. Já que é inserido <p> no inicio e </p> no final da string, não é possível usar a função trim().

Já pensei e tentei fazer várias coisas, porém não consigo resolver isso de jeito nenhum.

Gostaria que quando o usuário digitasse alguma coisa do tipo: " teste ", recebesse somente o "teste", que no banco seria inserido: "<p>teste</p>". E quando o usuário digitasse: " ", no banco fosse adicionado nulo ou ''. no caso ele adiciona: "<p> </p>".

Conto com a ajuda de vocês... Valeu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

por que o trim não funciona?

 

 

Amigo, leia a fundo sobre a função TRIM, garanto que vai te ajudar:

 

http://php.net/manual/pt_BR/function.trim.php

O trim não funciona pelo motivo que disse acima:

ao inserir um valor nulo, ou ao dar espaços sem digitar nada no text editor(tinycme) de qualquer forma ele adiciona <p></p>, logo não tem espaço no início pro trim() retirar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

então temos um erro de lógica, se ele não digita nada por que entra uma tag ?

Na verdade quando deixado totalmente em branco(sem espaço nem nada), ele adiciona vazio no bd. porém, se der um espaço ele já já adiciona "<p> </p>". E é por isso que o trim() não funciona

Compartilhar este post


Link para o post
Compartilhar em outros sites

então é o que estou dizendo, você não esta tratando os dados.

 

teria que ser algo assim

 

 

 

$digitado = trim($_POST['digitado']);
if(!empty($digitado)){

$digitado = "<p>$digitado</p>";
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

então é o que estou dizendo, você não esta tratando os dados.

 

teria que ser algo assim

 

 

 

$digitado = trim($_POST['digitado']);
if(!empty($digitado)){

$digitado = "<p>$digitado</p>";
}

Não entendi o que vc quis dizer. o ao digitar o texto, ele já envia dessa forma não sei como. imprimindo a variável não aparece "<p> </p>". Só aparece no banco de dados mesmo. porém, usando o str_len ele conta caracteres a mais.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já tive um problema desse com imagens dentro do Tinymce eu uso assim.

 

 


$digitado = mysql_real_escape_string($_POST['digitado']);

e na hora de puxar conteúdo do campo

 

(stripslashes($qualquer['digitado']));

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Já tive um problema desse com imagens dentro do Tinymce eu uso assim.

 

 


$digitado = mysql_real_escape_string($_POST['digitado']);

e na hora de puxar conteúdo do campo

 

(stripslashes($qualquer['digitado']));

acho que isso não vai me ajudar, até pq estou usando PDO. mas obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

galera, não consigo entender.

se eu dou um echo no que estou recebendo do textarea do tinycme, ele imprime só o texto. mas no banco é adicionado <p> etc... alguém da uma luz?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O navegador não mostra as tags, afinal de contas a função delas é formatar o texto, seria a mesma coisa que você dizer que no BD tem um <b></b> que não é mostrado. Se o seu problema reside apenas no excesso de espaços  , basta você usar um str_replace de forma recursiva para remover    (dois espaços seguidos), no final você dá outro str_replace para remove <p> </p> e pronto, isso tudo dá pra tratar com ER também.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O navegador não mostra as tags, afinal de contas a função delas é formatar o texto, seria a mesma coisa que você dizer que no BD tem um <b></b> que não é mostrado. Se o seu problema reside apenas no excesso de espaços  , basta você usar um str_replace de forma recursiva para remover    (dois espaços seguidos), no final você dá outro str_replace para remove <p> </p> e pronto, isso tudo dá pra tratar com ER também.

se eu remover os espaços com str_replace, também removeria os espaços no texto. Eu resolvi deixar adicionando no banco de dados normal. Mas, ao listar os dados eu utilizo striptags e trim pra remover os espaços em branco... Valeu por tudo galera.

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.