vdepizzol 0 Denunciar post Postado Maio 22, 2005 Oi, estou fazendo um tipo de "bbcode" pra o meu sistema de conteúdo do meu site. Gostaria, que, ao digitar entre as tags [*HTML] e [*/HTML], a pessoa pudesse adicionar código html, e que, ao digitar fora dessas tags, o html não seja ativado. Ex.: <b>Isto não ficaria negrito, ficaria como texto</b>[B]Isto ficaria negrito[/B][*HTML]<font face="Verdana" size="2">Exemplo</font>[*/HTML]A minha idéia seria fazer com que, todos os caracteres ">" e "<" q estivesse fora das tags [*HTML] e [*/HTML], virassem < e >... mas como? usei o * para o forum nao visualizar errado. Compartilhar este post Link para o post Compartilhar em outros sites
Cyber_Not 0 Denunciar post Postado Maio 22, 2005 Não sei se está certo, mas tenta fazer isso com algum dos dois exemplos aí:str_replace("<","<",$msg);ouPreg_replace("/\[html\](.*?)\[\/HTML\]/i",'<html>\\1</html>",$msg);até Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Maio 22, 2005 o que tiver fora das tags que você escolheu você usa htmlentities() e só usar ER pra formatar dentro das tags, se precisar de ajuda posta ai eu faço essas tags do invision Compartilhar este post Link para o post Compartilhar em outros sites
Cyber_Not 0 Denunciar post Postado Maio 22, 2005 O segundo exemplo que postei daria certo? quais seriam essas tags do invision?Valeu, até mais. Compartilhar este post Link para o post Compartilhar em outros sites
vdepizzol 0 Denunciar post Postado Maio 23, 2005 Fabyo, não sei bem como usar a função htmlentities() fora das tags [*HTML] e [*/HTML].... Se tiver como ajudar... agradeço :) P.S.: Não daria certo, Cyber-not, eu quero que, apenas o q estiver fora das tags [*HTML] e [*/HTML] não virem html... http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
red neck * 0 Denunciar post Postado Maio 23, 2005 cara eu tentei aqui mais nao consegui nao :S acho que o unico jeito é fazer tag por tag mesmo, ou eu sou muito burro, fiquei uns 30 minutos aqui tentando e nao consegui =/ a melhor solucao que achei: <? $str01 = "esse texto em vermelho via bbcode"; $str02 = "<font color='#FF0000'>texto em vermelho via html</font>"; function troca($string){ $string = strip_tags($string); $string = preg_replace("/\[color:(.*?)\](.*?)\[\/color\]/si","<font color='\\1'>\\2</font>", $string); return $string; } echo troca($str01); echo "<br>"; echo troca($str02); ?> ve se ajuda, malz ai, mais nao consegui bolar nada melhor =[[]'s Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Maio 23, 2005 1 você cria uma função pra colorir o html e depois você chama a função apartir da ER $txt = preg_replace( "#\[html\](.+?)\[/html\]#ies", funcao_colorir('\\1')", $txt ); e fora das tags html só usar htmlentities() ou se você nao conseguir você pode fazer assim: $txt = htmlentities(($_POST["script"]); e dentro da funcao pra colorir você usa a função html_entity_decode qualquer duvida posta ai Compartilhar este post Link para o post Compartilhar em outros sites
vdepizzol 0 Denunciar post Postado Maio 23, 2005 Fala Fabyo! Valeu pela ajuda... mas nao funcionou http://forum.imasters.com.br/public/style_emoticons/default/no.gif Olha o q eu fiz: PHP [*]$mensagem = "<b>Isso ficaria não ficaria como negrito, ficaria como texto</b> [*] [*][*HTML]<b>Isso ficaria negrito</b>[*/HTML]"; [*] [*]$mensagem = htmlentities($mensagem); [*] [*]// [*]function html($var) { [*] return html_entity_decode($var); [*]} [*] [*]$mensagem = preg_replace("/\[html\](.*?)\[\/HTML\]/si", html("\\1"), $mensagem); [*] Na ultima linha, também tentei assim: PHP [*]$mensagem = preg_replace("/\[html\](.*?)\[\/HTML\]/si", html_entity_decode("\\1"), $mensagem); Mas não aconteceu nada... os < e > continuaram sendo < e > Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Maio 23, 2005 nao é assim que você deve fazer ,olha ve se da pra entender +-: $mensagem = htmlentities($mensagem); nessa funcao que você tem que tratar os caracteres pra mudar de cor por exemplo: function html($var) { $var = preg_replace("~()~", "\\1", $var); e você pode ir colocando varias funções pra colorir o que quiser } $mensagem = preg_replace("/\[html\](.*?)\[\/HTML\]/si", html("\\1"), $mensagem); Compartilhar este post Link para o post Compartilhar em outros sites
vdepizzol 0 Denunciar post Postado Maio 23, 2005 Eu não quero colorir o html... eu quero validar ele... entendeu?Se a pessoa digitar, por exemplo "<br>" fora das tags [*HTML] [*/HTML], o "<br>" vai sair como "<br>"... se digitar dentro, ele quebra a linha Compartilhar este post Link para o post Compartilhar em outros sites
vdepizzol 0 Denunciar post Postado Maio 24, 2005 ninguém sabe??? Compartilhar este post Link para o post Compartilhar em outros sites
vdepizzol 0 Denunciar post Postado Maio 25, 2005 Eu pensei que isso não fosse tão dificil... ninguém pode me ajudar? Compartilhar este post Link para o post Compartilhar em outros sites
red neck * 0 Denunciar post Postado Maio 25, 2005 na verdade, não é que seje dificil, é que nao tem a menor logica isso que voce quer... porque , se é para liberar html, porque so pode liberar html dentro de tag ?se é para liberar, libera tudo... o que custumam fazer com bbcode, é bloquear html e liberar apenas as tags quie voce quer, cor/b-i-s/etcentendeu o que digo?[]'s Compartilhar este post Link para o post Compartilhar em outros sites
vdepizzol 0 Denunciar post Postado Maio 25, 2005 Acontece que... se a pessoa digitar, por exemplo o seguinte: 5 é maior que 4, ou seja, 5 > 4O ">" vai sair como elemento do HTML... então vai dar erro... Eu não posso simplesmente usar o htmlentities() no texto inteiro... pq podem ter códigos q vão se transformar em texto... Compartilhar este post Link para o post Compartilhar em outros sites
red neck * 0 Denunciar post Postado Maio 25, 2005 certo, mais porque voce nao cria as suas tags ? ai nao vai ter mais esse problema, e voce so permite o que quiser=]][]'s Compartilhar este post Link para o post Compartilhar em outros sites
vdepizzol 0 Denunciar post Postado Maio 26, 2005 Eu já fiz isso... como h1, h2, hx, b, i, p, blockquote, img, thumb, url, lista, etc...Mas se uma pessoa quiser por exemplo mostrar uma tabela? Fiz mto mais fácil ela pegar o código html da tabela e colar nas tags [*HTML] e [*/HTML]...Ninguém sabe como fazer isso? ;) Compartilhar este post Link para o post Compartilhar em outros sites
Eclesiastes 2 Denunciar post Postado Maio 26, 2005 Peguei como um desafio para mim... Então está ae: <?$mensagem = "wefweafwe[html]<b>Isso ficaria não ficaria como negrito, ficaria como texto</b>[/html]";$mensagem = htmlentities($mensagem);$modificado = preg_match_all("/\[HTML\](.*?)\[\/HTML\]/", $mensagem, $match);if ($modificado) { $cont = 0; foreach ($match[0] as $valor) { $html = html_entity_decode($match[1][$cont]); $arrayMod[$valor] = $html; $Conteudo = strtr($mensagem, $arrayMod); $cont++; } echo $Conteudo;} else { echo $mensagem;}?> Compartilhar este post Link para o post Compartilhar em outros sites
vdepizzol 0 Denunciar post Postado Maio 27, 2005 http://forum.imasters.com.br/public/style_emoticons/default/clap.gif Ehhhhhh!!!! Valeu Justice!!!!! http://forum.imasters.com.br/public/style_emoticons/default/joia.gif Não sei nem como te agradecer! Tô te devendo essa!!! http://forum.imasters.com.br/public/style_emoticons/default/grin.gif http://forum.imasters.com.br/public/style_emoticons/default/worshippy.gif Compartilhar este post Link para o post Compartilhar em outros sites
Eclesiastes 2 Denunciar post Postado Maio 27, 2005 HEHEHE..Tranquilo!! ;) Compartilhar este post Link para o post Compartilhar em outros sites
rsddaros 0 Denunciar post Postado Setembro 13, 2005 HEHEHE.. Tranquilo!! ;) <{POST_SNAPBACK}> Como coloco para funcionar seu codigo???E oque quer que eu escreva como direito autoral? Valeu Compartilhar este post Link para o post Compartilhar em outros sites