Radubrêdo 0 Denunciar post Postado Junho 2, 2005 Elaborei um formulário para cadastro de um texto num banco de dados, sendo que existe um script de paginação para buscar o texto que está armazenado no banco de dados. Acontece que quando executo o script de paginação o texto não vem formatado, ou seja, os espaços entre parágrafos colocado no formulário no instante do cadastro já não existe mais no momento da paginação. Como posso solucionar isso? Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Junho 2, 2005 para você ter uma formatação original do texto como por exemplo tab espaços pulo de linhas etc... você tem que usar uma fonte monospace para exibir os textos corretamente e basicamente isso: $mensagem = str_replace(' ', ' ', $mensagem); $mensagem = str_replace("\t", str_repeat(" " , 4), $mensagem); $mensagem = preg_replace("#(\r\n|\r)#", "\n", $mensagem); $mensagem = nl2br($mensagem); se tiver alguma duvida posta ai Compartilhar este post Link para o post Compartilhar em outros sites
wolfphw 60 Denunciar post Postado Junho 2, 2005 para você ter uma formatação original do texto como por exemplo tab espaços pulo de linhas etc... você tem que usar uma fonte monospace para exibir os textos corretamente e basicamente isso: $mensagem = str_replace(' ', ' ', $mensagem); $mensagem = str_replace("\t", str_repeat(" " , 4), $mensagem); $mensagem = preg_replace("#(\r\n|\r)#", "\n", $mensagem); $mensagem = nl2br($mensagem); se tiver alguma duvida posta ai <{POST_SNAPBACK}> Uma dúvida, esses 4 que você escreveu saum 4 formas de fazer??? Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Junho 3, 2005 nao é uma sequencia veja: $mensagem = str_replace(' ', ' ', $mensagem); vai trocar um espaço por uma e o browser intende como espaço $mensagem = str_replace("\t", str_repeat(" " , 4), $mensagem); ira trocar a tabulação por 4 espaços, O tab pra HTML é um espaço em branco e portanto é ignorado do mesmo jeito que são os espaços extras. Agora o TAB é um caracter só, é o ASCII 9. Ele é um caracterespecial que é interpretado como espaçamento. Você pode substituir direto no PHP o "\t" por 4 , ai é você quem sabe o numero de espaços. 4 é o mais comum, mas não existe regra pra isso, o editor de textos que define o quanto ele vai espaçar e como. $mensagem = preg_replace("#(\r\n|\r)#", "\n", $mensagem); ira troca \r\n por \n \r é retorno no carro e \n nova linha esses termos eram usados em maquinas de escrever $mensagem = nl2br($mensagem); e essa função ira trocar todos os \n por essa função é a mesma coisa que: $mensagem = str_replace("\n", "", $mensagem); o legal de usar a função que ela ja usa o padrao novo da tag html Concluindo para quem tiver duvidas ou curiosidades em saber mais detalhes sobre esse assunto A tabela ASCII utiliza 8 bits por caracter, 2 elevado a 8 = 256, portanto pela tabela ASCII é possível utilizar 256 caracteres no total. Ao exibir caracteres na tela, a tabela ASCII é utilizada como uma tabela de correspondência. Ou seja, há um número e associada a ela existe um "desenho" que nós entendemos por letras, números e etc. Quando você num arquivo digita a letra "a", é gravado o número 97 (61 em hexa), ao exibir isso na tela o sistema vai lá e ve qual o desenho associado ao número gravado e exibe. O número utilizado para o espaço da barra de espaços é o 32 (20 em hexa). O 160 e o 255 são simplesmente números que não tem "desenho" nenhum associado nessa tabela, e portanto aparece em branco. Se você pegar o padrão unicode que define 4 bytes por caractere, você vai ter um total de quase 4.3 bilhões de caracteres possíveis. O Unicode foi criado para ter um código único para cada caracter do planeja, já que o ASCII definia muito poucas posições, e hoje tem mapeado mais de 90 mil caracteres, no entanto mesmo mapeando todos os caracteres de todas as culturas de todas as épocas, já se constatou que nunca vá se chegar a 4 bilhoes de caracteres diferentes. Isso significa que no padrão oficial unicode, podem haver mais de 4.2 bilhoes de espaços em branco que nunca será utilizado, e consequentemente te apresntariam um "espaço em branco".Mas isso não quer dizer que existam 4 bilhoes de espaços, simplesmente aquele código não tem nenhum desenho associado. Em vários sistemas como ICQ ou chats, o pessoal envia o 160 só pra dizer que consegue enviar mensagens em branco, enquanto muita gente fica la feito boba tentando entender como fazer isso com o espaço. Acontece que o 160 não está na lista de caracteres que a maioria das linguagens trata como espacos em branco, que geralmente sao o 9, 10, 13 e 20 que sao os tab, pulos de linha e espacos... Assim como o HTML exibe o 160 como um caracter normal, e ignora os espaços (20). Se em algum código de página, o 160 for utilizado para outro caractere, a pessoa verá Portanto tem diferenca de usar 160, 255 ou ja que esse último vai ser convertido pelo browser para espacos, e os outros sao tratados como caracteres normais. Compartilhar este post Link para o post Compartilhar em outros sites