Ringeril 0 Denunciar post Postado Outubro 12, 2011 Olá pessoal! Preciso de uma ajuda nesse código aqui, dêem uma olhada. Na seguinte parte do código o que fiz foi pegar entre o bbCode "[usuario]1[/usuario]" e procurar esse valor no banco de dados, retornando o nome do usuário para montar um link para seu perfil. O código funciona, mas quero saber se há uma maneira melhor de fazer isso. Nota: percebe-se que alem de [usuario] há também [grupo] que coloquei para não precisar refazer o código para cada bbCode diferente. Código: $str = '[usuario]1[/usuario][usuario]2[/usuario][usuario]2[/usuario][grupo]1[/grupo]'; preg_match_all('@\[usuario\](.*?)\[\/usuario\]|\[grupo\](.*?)\[\/grupo\]@i', $str, $result); array_shift($result); foreach($result as $k=>$v){ foreach($result[$k] as $kk=>$vv){ if($vv){ if($k == 0) $new['[usuario]'.$vv.'[/usuario]'] = '<a href="#usuario">'.$session->dadosUsuario('usuario',$vv).'</a>'; elseif($k == 1) $new['[grupo]'.$vv.'[/grupo]'] = '<a href="#grupo">'.$session->dadosGrupo('nome',$vv).'</a>'; } } } $str = strtr($str, $new); Então, há uma maneira melhor de fazê-lo? Abraço. ------------- Só editando pra mostrar como faço normalmente: $bbcode = array( '@\[br\]@is' => '<br/>', '@\[b\](.*?)\[\/b\]@i' => '<strong>$1</strong>', '@\[i\](.*?)\[\/i\]@i' => '<em>$1</em>', '@\[u\](.*?)\[\/u\]@is' => '<u>$1</u>'...... .... ); return preg_replace(array_keys($bbcode), array_values($bbcode), strip_tags($str)); Compartilhar este post Link para o post Compartilhar em outros sites
Henrique Barcelos 290 Denunciar post Postado Outubro 12, 2011 Existem várias maneiras de se fazer isso, mas avaliar qual é melhor e qual é pior é muito subjetivo. O que você fez funciona? Atende seus objetivos? Não existe nenhum erro conceitual ou de programação? Então está ótimo. Como futuro engenheiro, às vezes recorro à velha máxima: 'O mais simples que funcione.' :thumbsup: Compartilhar este post Link para o post Compartilhar em outros sites
Ringeril 0 Denunciar post Postado Outubro 13, 2011 Então tá tudo certo, Rick! :D Vou deixar o código deste jeito mesmo. Brigadão! Compartilhar este post Link para o post Compartilhar em outros sites