Jump to content


Photo

Tranformar Html Pra Bbcode


  • Faça o login para participar
2 replies to this topic

#1 Naruto

Naruto

    12 Horas

  • Usuários
  • 186 posts
  • Sexo:Não informado

Posted 18/05/2006, 20:53

Pessoal.. to com um problema.. usei a função de bbcode lah de um dos tópicos na seção de funções... o código é essse aqui:

//========================================
//====== Sistema de BBCode->HTML =========
//========================================

function bbcode($sText)
{

$sText = str_replace("http://www.youtube.com/watch?v=","http://www.youtube.com/v/",$sText);
$atagArray['youtube'] = array('open'=>'<embed src="',
'close'=>'" type="application/x-shockwave-flash" width="425" height="350"></embed>');

$sTagArray['lol'] = array('tag'=>'<img src="imagens/smiles/001.gif" />');
$sTagArray['=)'] = array('tag'=>'<img src="imagens/smiles/002.gif" />');
$sTagArray['ops'] = array('tag'=>'<img src="imagens/smiles/003.gif" />');
$sTagArray['raiva'] = array('tag'=>'<img src="imagens/smiles/004.gif" />');
$sTagArray['=p'] = array('tag'=>'<img src="imagens/smiles/005.gif" />');
$sTagArray['uU'] = array('tag'=>'<img src="imagens/smiles/015.gif" />');
$sTagArray['snif'] = array('tag'=>'<img src="imagens/smiles/007.gif" />');
$sTagArray['hein'] = array('tag'=>'<img src="imagens/smiles/009.gif" />');
$sTagArray['Oo'] = array('tag'=>'<img src="imagens/smiles/010.gif" />');
$sTagArray['sorriso'] = array('tag'=>'<img src="imagens/smiles/011.gif" />');
$sTagArray['s2'] = array('tag'=>'<img src="imagens/smiles/012.gif" />');
$sTagArray['!'] = array('tag'=>'<img src="imagens/smiles/013.gif" />');

$atagArray['esquerda'] = array('open'=>'<p style="width: 100%; text-align: left">','close'=>'</p>');
$atagArray['direita'] = array('open'=>'<p style="width: 100%; text-align: right">','close'=>'</p>');
$atagArray['centro'] = array('open'=>'<p style="width: 100%; text-align: center">','close'=>'</p>');
$atagArray['justo'] = array('open'=>'<p style="width: 100%; text-align: justify">','close'=>'</p>');
$atagArray['img'] = array('open'=>'<img src="','close'=>'" />');
$atagArray['b'] = array('open'=>'<b>', 'close'=>'</b>');
$atagArray['i'] = array('open'=>'<i>', 'close'=>'</i>');
$atagArray['u'] = array('open'=>'<u>', 'close'=>'</u>');
$atagArray['url'] = array('open'=>'<a href="', 'close'=>'" target="_blank">\\1</a>');
$atagArray['email'] = array('open'=>'<a href="mailto:', 'close'=>'">\\1</a>');
$atagArray['site=(.*)'] = array('open'=>'<a href="', 'close'=>'" target="_blank">\\2</a>');
$atagArray['email=(.*)'] = array('open'=>'<a href="mailto:', 'close'=>'">\\2</a>');
$atagArray['color=(.*)'] = array('open'=>'<font color="', 'close'=>'">\\2</font>');
$atagArray['size=(.*)'] = array('open'=>'<font size="', 'close'=>'">\\2</font>');
$atagArray['font=(.*)'] = array('open'=>'<font face="', 'close'=>'">\\2</font>');

foreach ($atagArray as $stagName => $replace)
{
$tagEnd = preg_replace("/\W/sUi", "", $stagName);

$sText = preg_replace(
"|\[$stagName\](.*)\[/$tagEnd\]|sUi",
"$replace[open]\\1$replace[close]",
$sText
);
}

foreach ($sTagArray as $stagName => $replace)
{
if (eregi("[)(#$]", $stagName))
{
$stagNameNew = preg_replace("#([\)\(\$\#])#", "\\ \\1", $stagName);
$stagNameNew = preg_replace("#( +)#", "", $stagNameNew);
$sTagArray[ $stagNameNew ] = array('tag' => $replace['tag']);
unset($sTagArray[ $stagName ]);
}
}

foreach ($sTagArray as $stagName => $replace)
{
$sText= preg_replace("|\[$stagName\]|sUi", "$replace[tag]", $sText);
}

return $sText;
}


dei uma modificada e tals.. até ai blz.. mas agora eu to com um problema, os usuários que irão postar tb poderão editar seus posts certo? Então, mas na hora de editar o código ta todo em HTML... será que alguem ai tem uma função que tranforme HTML pra BBCODE?!

Pq agora eu só tenho 2 opções.. ou eu arranjo essa função que eu num tenho nem ideia de como fazer.. ou eu salvo no Banco de Dados os textos com TAGS BBCODE mesmo e uso a função na hora de imprimir, oq acho q vai afetar o desempenho neh? ;)
uzumaki.naruto
-----------------------------------------------
"Eu não vou contra minhas palavras. Este é meu estilo ninja."
» Uzumaki Naruto

#2 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 18/05/2006, 21:52

Use a função do BBCode somente para exibição dos dados.
Ou seja, não registre no BD a interpretação das tags feita pela função, registre o que foi digitado.

E não permita uso de HTML.
http://www.php.net/strip-tags

Edição feita por: Eclesiastes, 18/05/2006, 21:53.

Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29

#3 Naruto

Naruto

    12 Horas

  • Usuários
  • 186 posts
  • Sexo:Não informado

Posted 19/05/2006, 00:14

hehehehe eh oq eu tava em mente =/
bom enfim acho q o jeito vai ser esse mesmo :(

vlw pelo dica ai do html.. ia ser minha prox duvida hehhehehe
\O
uzumaki.naruto
-----------------------------------------------
"Eu não vou contra minhas palavras. Este é meu estilo ninja."
» Uzumaki Naruto




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq