Ir para conteúdo
Fórum Script Brasil
  • 0

problema com str_replace!


Tesla

Pergunta

galera fiz uma função:

function coloca_html ($string) {
//-- Tags do site
$html_site[0] = '[!url]';
$html_site[1] = '[url]';
$html_site[2] = '[url!]';
$html_site[3] = '[b]';
$html_site[4] = '[s]';
$html_site[5] = '[i]';
$html_site[6] = '[/b]';
$html_site[7] = '[/s]';
$html_site[8] = '[/i]';
$html_site[9] = '[img]';
$html_site[10] = '[!img]';
$html_site[11] = '[font]';
$html_site[12] = '[\font]';
$html_site[13] = '[/font]';
$html_site[14] = '[fcolor]';
$html_site[15] = '[\fcolor]';
$html_site[16] = '[/fcolor]';
$html_site[17] = '[peq]';
$html_site[18] = '[/peq]';
$html_site[19] = '[gra]';
$html_site[20] = '[/gra]';
$html_site[21] = '[code]';
$html_site[22] = '[/[b][/b]code]';
$html_site[23] = '[ul]';
$html_site[24] = '[el]';
$html_site[25] = '[/el]';
$html_site[26] = '[/ul]';
$html_site[27] = '[center]';
$html_site[28] = '[/center]';
$html_site[29] = '[left]';
$html_site[30] = '[/left]';
$html_site[31] = '[right]';
$html_site[32] = '[/right]';
$html_site[33] = '[br]';
$html_site[34] = '[strike]';
$html_site[35] = '[/strike]';
//-- Substitui por tags reais HTML
$html_sub[0] = '<a href="';
$html_sub[1] = '">';
$html_sub[2] = '</a>';
$html_sub[3] = '<b>';
$html_sub[4] = '<u>';
$html_sub[5] = '<i>';
$html_sub[9] = '</b>';
$html_sub[7] = '</u>';
$html_sub[8] = '</i>';
$html_sub[9] = '<img src="';
$html_sub[10] = '">';
$html_sub[11] = '<font face="';
$html_sub[12] = '">';
$html_sub[13] = '</font>';
$html_sub[14] = '<font color="';
$html_sub[15] = '">';
$html_sub[16] = '</font>';
$html_sub[17] = '<small>';
$html_sub[18] = '</small>';
$html_sub[19] = '<big>';
$html_sub[20] = '</big>';
$html_sub[21] = '<table style="border:1px solid #FF0000;background:#000000;"><tr><td style="border:1px solid #FF0000;background:#000000;"><span style="color:#FFFFFF;">C&oacute;digo:<br>';
$html_sub[22] = '</span></td></tr></table>';
$html_sub[23] = '<ul>';
$html_sub[24] = '<li>';
$html_sub[25] = '</li>';
$html_sub[26] = '</ul>';
$html_sub[27] = '<center>';
$html_sub[28] = '</center>';
$html_sub[29] = '<left>';
$html_sub[30] = '</left>';
$html_sub[31] = '<right>';
$html_sub[32] = '</right>';
$html_sub[33] = '<br>';
$html_sub[34] = '<strike>';
$html_sub[35] = '</strike>';
return str_replace($html_site, $html_sub, $string);
}
só que por exemplo se a pessoa coloca:
[b]Negrito[/b]

ela substitui o por <img src="

que doidera,

como resolvo?

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Você está tentando utilizar arrays na função str_replace.

Não que ela não aceite, mas não aceitará esse tipo de array.

Dá uma olhada no exemplo que foi criado na documentação do PHP:

http://www.php.net/manual/pt_BR/function.str-replace.php

$frase  = "você comeria frutas, vegetais, e fibra todos os dias.";
$saudavel = array("frutas", "vegetais", "fibra");
$saboroso   = array("pizza", "cerveja", "sorvete");

$novafrase = str_replace($saudavel, $saboroso, $frase);
Basicamente você tem adaptar suas arrays para que possam funcionar corretamente. Da forma que você está fazendo funciona também, mas você terá que dar uma mexida no código, colocando o str_replace() dentro de um foreach, assim:
$i = 0;
foreach($html_site as $Antes){
    $string = str_replace($Antes, $html_sub[$i], $string);
    $i++;
    }
return print($string);

O trabalho é menor, mas é gambiarra né.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...